返回列表 发新帖

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

434.3k 10
swmozowtfl 发表于 2015-7-14 22:20:33|湖北 | 查看全部 阅读模式
具体实现方法如下:
- s' `  Q4 {' l( N. v5 O! Y( Q0 V代码如下:& j6 j) x; l$ ~6 F9 B5 M* K. S
<?php
. ]# n) y  e8 f% G2 O& R; b/** + Y/ f. s! ~8 q/ T; v( Y
la (3,5,8,11) ( n( g% u7 E, G, z" F
lb(2,6,8,9,11,15) ' f: C( ]8 V' p, l: }# r+ S4 E
合并为lc,有序排列。
0 G  V9 `) W. ]5 [用php实现,不能用sort之类的函数!!!!
+ v' e1 K% \' T. W0 _6 \**/
6 M. u8 Y3 D8 f7 cclass union { ) B8 M1 a# N" `2 \
var $lista = array(); : r; P* y  _# d) }
var $listb = array();
! u. S5 q, |/ Y3 U1 `& [5 T( dvar $listc = array(); 7 h$ x  i* O, d
/ a2 M0 y- Z, t  H+ |
function getlenght($arr) { //获得表长度 ( f# @6 A' n' m
return count($arr); : a/ O/ j6 k) \0 Z
} 8 M. M6 M6 ?+ S1 j& e5 `

) H0 i% w/ u6 H, t. q; O& s. cfunction getelement($arr, $n) { //获取表中第n个元素,返回
  X: J& w: ]) a; C8 X5 Ereturn $e = $arr[$n] ? $arr[$n] : '';
7 ]" o( B( H4 h6 G; n}
6 C0 W4 h4 a" s0 w& E" m; U3 x) @$ ?, E( s% F
function listinsert($arr, $e) { //表末尾插入元素 " V/ a# o- ^) i2 d
$arr[] = $e; * ^, c6 Z% e( W& B
return $arr;
( L" V& x" B; e8 T6 |; |}
( x+ o: s4 @# ~6 q$ L}
/ ?' v, c- a3 m8 ^# d6 S0 Y6 J$phpig = new union(); / A2 @' D5 u/ }2 a& _! S
$lista = $phpig->lista = array(3, 5, 8, 11);
! A* S+ @& c* z0 _& M$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15);
+ e* z  M& `4 }$listc = $phpig->listc; 0 n& }+ p5 n" P& Q& c1 K
$lena = $phpig->getlenght($lista); //取得表大小
  g) g  J9 M0 a$lenb = $phpig->getlenght($listb); / y' v9 L5 z8 N
$i = $j = 0; 9 w3 i# s$ ~/ ]; l
while($i < $lena && $j < $lenb) {
1 e# ~7 J; ]" F9 ]$ea = $phpig->getelement($lista, $i); 9 |: i5 V* S- S8 V
$eb = $phpig->getelement($listb, $j); 1 ~4 M0 E/ e/ X
if($ea <= $eb) {
" z7 d, V0 h/ m$listc = $phpig->listinsert($listc, $ea);
. C2 F% ~8 r8 g* R2 v$ t++$i; * Z& H# S) e5 V4 t
} else {
9 j7 T) v3 {# H7 D' @$listc = $phpig->listinsert($listc, $eb); , O' E  v' M  e/ c4 T. r  M4 w8 p
++$j; 4 c" n! Y1 |  ^! ]. b+ z# J' V# \
}
# N# \: X: A8 i  T3 q}   F5 h9 {* e  T; S& N
while($i < $lena) {
" j) o; Y' {. x& ~  D* f9 c$ea = $phpig->getelement($lista, $i); % H$ U; }6 Y' c5 X$ O- H* `
$listc = $phpig->listinsert($listc, $ea);
1 ^; p( A* P/ L3 ]/ z& x1 s  E++$i;
8 |. n3 o6 n1 e: _' [! p% i) C}* D$ e3 a) O; q* [" L$ S4 X$ }+ H
while($j < $lenb) {
( Q1 [% j' t+ k1 S+ v$ s3 ]+ n; F$eb = $phpig->getelement($listb, $j);
) _# I/ Q+ {/ u. }5 m$listc = $phpig->listinsert($listc, $eb);
! u( V0 ^8 a& @" U6 a++$j; ; [  |$ @4 ^" k' A( j. K
}
% e0 D( h  ]" o; @6 W; z/ b2 |4 u$ Vprint_r($listc); / F+ r& N% w8 Y& ~
?>
& O7 ]3 h4 |1 f7 K9 u1 s) n7 ^8 ^0 n1 x! ?5 T0 R; E6 g
更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表