返回列表 发新帖

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

434.2k 10
swmozowtfl 发表于 2015-7-14 22:20:33|湖北 | 查看全部 阅读模式
具体实现方法如下:# f  Y- q; M% r2 f0 o8 r6 j+ T# z
代码如下:
! N6 [! G. h, l5 o; r- l
<?php
1 ~( Q4 U; U/ Z& L6 C+ B/**
' d, L: ~+ _0 Y' N5 N8 }la (3,5,8,11) 2 U& n* d& x$ ^* N" h3 L  g
lb(2,6,8,9,11,15) 3 n1 r/ ]8 k4 `  y6 o
合并为lc,有序排列。
# f* ?) j! x  n  Z- j7 {- n1 z" @3 s& z用php实现,不能用sort之类的函数!!!! + r. n! _3 O- y
**/
8 C2 E/ u5 p; V1 H" }class union {
- n' Y: Z( N! d: n, R' X$ @var $lista = array(); 9 t! o7 r1 s! t1 {( O7 |% O- ?
var $listb = array(); / G2 @$ a- Y' N
var $listc = array();
5 P) [& ]# @9 F3 @/ s# g  C+ i$ M8 I+ F& t
function getlenght($arr) { //获得表长度
% i, ^1 J& s( M( ~return count($arr);
2 j- U, M& E+ `. R} - V& h8 g& j$ ?  Y
+ ]: j+ N* {+ t$ A
function getelement($arr, $n) { //获取表中第n个元素,返回   T, O! ~  i/ z: [. D; ^: N& v* p
return $e = $arr[$n] ? $arr[$n] : ''; 2 W+ a% n) _/ v( \0 \8 ^8 i! x
} . f6 O- E0 J9 c$ o  i! Y1 t
' e- t; w0 h- c" a; ^/ z) c
function listinsert($arr, $e) { //表末尾插入元素 " V( P/ B: o, `% o' B! O
$arr[] = $e; ; O( K9 w, r" \4 I; f6 s% c
return $arr;
2 V) {6 w$ {! k( C& H6 }& f: F} - b' s( Y' _9 T$ p
}
  N: i$ ~0 z* m- K$phpig = new union();
3 j- ^6 Q+ O: P- R8 b  q" U$lista = $phpig->lista = array(3, 5, 8, 11); : `$ x& L! w, v/ S4 }, U" E6 P
$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15);
+ ]: F/ V! ]% ?, a  e3 h7 h+ W3 H$listc = $phpig->listc;
" T4 @3 Q' G+ Z% ]$lena = $phpig->getlenght($lista); //取得表大小 ! D6 K- e' ?& O
$lenb = $phpig->getlenght($listb);
3 x9 G: |: g/ n& i; K' B" V$i = $j = 0;
6 b0 b! \0 ~: a9 k2 i6 Y0 F6 awhile($i < $lena && $j < $lenb) { ! J$ O5 `( K- ?) B$ ^# `
$ea = $phpig->getelement($lista, $i);
6 \6 I$ X/ n0 j$eb = $phpig->getelement($listb, $j); " i" b" e- E  a+ w9 w
if($ea <= $eb) { 6 m( F1 L' W0 S6 w  z, b6 l
$listc = $phpig->listinsert($listc, $ea);
" G+ f$ u% |3 X& T, i3 j++$i; : C) W$ q8 Y3 q" W% }5 H
} else { . \7 f' x( z+ E9 N6 M! |
$listc = $phpig->listinsert($listc, $eb);
) C) I4 O% B/ b2 q++$j; $ a/ Z# Q- p5 B& a8 S8 R: x% m4 I' y) @
} " Z; G- O2 P% L+ w
} 8 o1 Z$ C5 H0 j0 u$ o
while($i < $lena) {
, e' m& Q" i+ d% m* o0 \9 v  I$ea = $phpig->getelement($lista, $i);
# k+ E" y% \- {" K$listc = $phpig->listinsert($listc, $ea); * l. @" Q; e3 q  S! Q
++$i;
& G# {; L/ L. q( C5 z( C) V}7 F: ]! g9 h6 b) R
while($j < $lenb) {
' n8 k+ K6 q+ e, j5 p3 x" P$eb = $phpig->getelement($listb, $j); 9 Z8 e0 ^) L" T7 f
$listc = $phpig->listinsert($listc, $eb);
2 h7 Y8 S" j- Z( ?++$j; 0 R1 s( u2 S2 I) @5 l' [% G
}
+ S' H3 Z( D5 n5 L9 J8 Wprint_r($listc); & v6 l. ^* o7 f* m
?>
; S( q# i8 M! Y7 ]. z2 R8 u" W; [  K' Q" x
更多网页制作信息请查看: 网页制作

回复|共 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技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表