返回列表 发新帖

php实现两表合并成新表并且有序排列的方法

434.3k 10
swmozowtfl 发表于 2015-7-14 22:20:33|湖北 | 查看全部 阅读模式
具体实现方法如下:
" Q  J) R0 V3 [0 }代码如下:5 N* y) a2 Z! O0 F: i
<?php
) h+ ^7 U$ ^8 G3 o/**   Z0 M5 C4 p( j/ h
la (3,5,8,11) + i5 N7 ^2 `/ f
lb(2,6,8,9,11,15)
* a8 i& ~* [  ]- Z% f8 ]7 T0 C合并为lc,有序排列。 ) n* G0 F( Q- p6 [0 }" C: z5 `
用php实现,不能用sort之类的函数!!!!
' b4 @/ l) T, K- I5 U**/ : d! u3 ^+ k; ?' [: p
class union {
  |" ~6 K: @+ \% c/ U: \var $lista = array();
! D; d( i( o6 r- m& L9 kvar $listb = array(); . N& N& `6 U' z/ S' \) j- Q3 \
var $listc = array(); & {/ O! }8 i3 p. t8 P
- T# v1 ?0 o) C" t# W
function getlenght($arr) { //获得表长度 : I' n! Z1 K9 I% J# u% W2 G
return count($arr);
. B" p7 n6 J* C( j) \4 O; Z( n: S}
, i5 M: `3 E0 }, `. k, W5 M  y) i1 s, u
function getelement($arr, $n) { //获取表中第n个元素,返回
2 e2 t& R( p: R  G" Hreturn $e = $arr[$n] ? $arr[$n] : ''; ' v& B% u) o* I8 k" z
} 1 B/ t* U+ {, ?1 K3 ^% g/ [$ X2 [

4 o- m$ U* g. v. a/ j, _3 e; Wfunction listinsert($arr, $e) { //表末尾插入元素
9 _; @8 L* Y% @, m; V% N" g$arr[] = $e;
5 o3 a% r, r5 z5 Preturn $arr;
( K2 d3 l7 F7 k$ L} 4 H. d1 S9 P2 a. N, b
} * Q% L* K4 @6 }
$phpig = new union(); 6 _1 ]( g" f- x1 o  M; M/ l# _
$lista = $phpig->lista = array(3, 5, 8, 11);
- F  s3 Y* u0 y9 p2 P' e2 r& a$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15); ; ~7 o4 g2 y( {0 h
$listc = $phpig->listc;
, ^1 p, z" i5 C1 V: J7 t5 ?4 w$lena = $phpig->getlenght($lista); //取得表大小
* A; w9 {& I! d; G, V# i1 q9 B$lenb = $phpig->getlenght($listb); 6 p6 Q5 k5 I$ H* c1 _3 m) L
$i = $j = 0; 1 e  ]" u/ H" ~, X* v
while($i < $lena && $j < $lenb) { % M  F3 |% X- l2 f. `# B
$ea = $phpig->getelement($lista, $i);
8 d  f% Z4 W9 O# ^0 \6 F* S$eb = $phpig->getelement($listb, $j); + J  B! s! E9 G( Q) q: h$ A  L
if($ea <= $eb) {
+ \" L4 \& }. {% J+ x- p$listc = $phpig->listinsert($listc, $ea);
( J( }! ]- `! E+ x! @/ ^, m# ^++$i;
5 N' `/ b6 N/ ?7 {& }} else {
( x8 f4 L5 x: d: [5 T$listc = $phpig->listinsert($listc, $eb);   U6 p8 `& i8 h6 n/ \/ w3 g
++$j;
; {) U8 _% x$ Q* }2 _' t' y/ p" L} / ]* Y/ t. Q  |3 `
}
7 }3 x4 d3 }. |1 s* @while($i < $lena) {
3 a) Z. p9 L; J% j$ h$ea = $phpig->getelement($lista, $i); 0 s$ {, l- d( N' k! g) O
$listc = $phpig->listinsert($listc, $ea);
( B8 r2 B" C, }4 p4 d2 d5 i++$i; 9 L. `0 R0 e( H+ T: v
}
5 |0 W3 V% j- C- u3 zwhile($j < $lenb) { , Z, h6 b  J9 S1 S# K- E- b! L7 G
$eb = $phpig->getelement($listb, $j); 7 [4 o' @1 s: L  \! e7 s; z& ^
$listc = $phpig->listinsert($listc, $eb); * I/ |& a/ S& o* s; n& v! K
++$j;
* i4 J8 N( A  ]2 x8 N5 `! b}
1 U; A# g7 |5 q' Hprint_r($listc); # I" e. d5 |* j3 |' ], O4 K; K* }
?>
3 o$ j# v5 n4 [4 a6 N- U6 S
# W7 d/ Q5 j1 b* k/ f% z更多网页制作信息请查看: 网页制作

回复|共 10 个

seazvyt 发表于 2015-9-29 22:53:18|中国 | 查看全部
我刚来~~~嘿嘿~~此声明最终解释权归本人所有。
bqtklouu 发表于 2015-9-29 22:53:22|美国 | 查看全部
楼猪.重量级人物阿.
bqtklouu 发表于 2015-9-29 22:53:33|摩洛哥 | 查看全部
要相信自己~智商为0
wwdu926a 发表于 2015-9-29 22:53:24|韩国 | 查看全部
明天我给发过来
tohme 发表于 2015-9-29 22:52:34|印度 | 查看全部
这个站一周前刚刚有了点起色
seazvyt 发表于 2016-1-15 21:02:58|Reserved | 查看全部
这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范(不好意思回错帖了
wwzcdenleclv 发表于 2016-1-15 21:04:25|台湾 | 查看全部
哦~~~明白了....
seazvyt 发表于 2016-1-15 21:04:12|美国 | 查看全部
感谢党和人民的关爱~~~
alapScady 发表于 2016-1-15 21:03:18|澳大利亚 | 查看全部
我的我的 忘记了 呵呵
wwzcdenleclv 发表于 2016-1-15 21:04:28|韩国 | 查看全部
好吧...那你说...

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表