返回列表 发新帖

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

434.3k 10
swmozowtfl 发表于 2015-7-14 22:20:33|湖北 | 查看全部 阅读模式
具体实现方法如下:
0 Q1 n; e4 o* r  d2 q1 F代码如下:
* q, `! g% h6 C
<?php 7 q/ k. S" V: x3 \! ~$ P
/**
( w% \! N# n$ _$ D) I9 Nla (3,5,8,11) / J2 Y: Q$ J7 h7 X0 a" m1 G
lb(2,6,8,9,11,15) % e/ B5 T: w) U$ w  c/ `& `- t3 o
合并为lc,有序排列。 % S$ G- j) z/ G4 e0 U5 X. T
用php实现,不能用sort之类的函数!!!! 2 M4 c! K# S+ n6 I
**/ / n4 u. l- f* ?+ j2 N- D" e  O
class union { / L2 R" E2 ?! v" x7 a$ h: X
var $lista = array();
1 H  s3 b+ ]; c# F( rvar $listb = array();
8 b! l$ {0 {. k! y" Tvar $listc = array(); % Q0 p, [: D$ }7 f; M
- Y- n2 l5 u; Y- i4 M* N' b
function getlenght($arr) { //获得表长度
+ r0 W5 H; f7 O' w& Mreturn count($arr); 3 M4 B& G1 ], @1 @
}
1 I8 \' u' U% b$ m$ L& {
. K; l% Z; e* n9 G& S% d! t+ c  x. \function getelement($arr, $n) { //获取表中第n个元素,返回 , L% T- v  Z. M& r: @5 J8 z
return $e = $arr[$n] ? $arr[$n] : '';
! `9 V# f5 C" }} 8 N; |. q, M) S, T# M( n
/ X2 T# [7 K& E' e  G. t) E' Y/ D
function listinsert($arr, $e) { //表末尾插入元素
, v" s/ v! ~9 O, X; R, t$arr[] = $e; # U0 n* `: i1 G
return $arr;
- r* \, X4 x& @2 S% e" G}
) ^8 {9 ~* r, f: \" O' T! N( ?}
2 ?, B+ O% Z) d% l  r: d0 n$phpig = new union(); - p9 o# i6 T. E' k* y) {. H
$lista = $phpig->lista = array(3, 5, 8, 11); . b/ Y) u" i  s( E
$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15); ' u6 {( P4 m+ d" C7 ?  a
$listc = $phpig->listc; 8 |6 ?1 O6 H5 v9 w7 z4 w2 y- U3 t
$lena = $phpig->getlenght($lista); //取得表大小 8 t7 g$ ]2 v( Y7 ?2 t, S' a
$lenb = $phpig->getlenght($listb); % y, X* O8 @3 x2 p5 F# L9 V/ R! y4 C3 h8 k
$i = $j = 0; " T' Y' t1 ]$ p; n+ t
while($i < $lena && $j < $lenb) {
1 U* J8 N( T) A2 E1 r$ea = $phpig->getelement($lista, $i); # y! k- E5 o% v' N& J2 ~
$eb = $phpig->getelement($listb, $j); : w0 J% J8 P( k9 e/ I% i0 S: W5 |
if($ea <= $eb) { 0 H1 P5 m4 T+ m4 u- z2 ^* y
$listc = $phpig->listinsert($listc, $ea);
0 a  A7 d7 g7 u7 I7 r7 ?/ S  M/ Z++$i;
: S) J/ X! l  \5 j! @6 @# q) u} else { 3 |5 ?$ G; |2 W0 W
$listc = $phpig->listinsert($listc, $eb);
; Y1 q# ^$ E: y++$j; ' V, g( Z; Z/ I+ }6 J1 |4 q
}
" R: m) H1 V+ K) V$ f- {}   Q& ?4 H  b- M
while($i < $lena) {
6 W0 t; N  ~* T4 ~. o6 J8 [3 L$ea = $phpig->getelement($lista, $i);
( d; h2 k& M7 Z4 g* ?$listc = $phpig->listinsert($listc, $ea);
2 i" q7 d( k. x! x) K! g9 L% T++$i;
. e( m# N- h: x9 Y}
" P" G( y0 a+ X7 V. _# {5 P# ewhile($j < $lenb) {
4 D) B0 ~3 ]6 A4 a$eb = $phpig->getelement($listb, $j); 7 A4 [4 q- Q, \, R# ]4 X5 ?
$listc = $phpig->listinsert($listc, $eb);
& D0 H4 x6 Y/ f9 u( ^3 c% h++$j;
* E1 l- j+ C7 r}
2 @9 s  Z6 f7 [. _1 i3 f$ L7 s# vprint_r($listc); 0 i' c/ ?; C4 m2 ^9 D9 X" E! Z
?>1 j- W  z0 e7 P5 Q0 S. p0 }! s
& }( W  x9 l8 F7 ?2 J
更多网页制作信息请查看: 网页制作

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