返回列表 发新帖

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

434.3k 10
swmozowtfl 发表于 2015-7-14 22:20:33|湖北 | 查看全部 阅读模式
具体实现方法如下:8 y5 p$ x$ p% D3 e# w$ e' b
代码如下:
( }7 ~  E: E0 g8 y5 ]# Z
<?php
* k; `, f. _9 w% u3 X* f5 z! v; G8 P5 {/**
6 G% v! G: |7 P# z( {7 Sla (3,5,8,11) ; Y# k3 @; E7 x* H4 r6 U% n3 R
lb(2,6,8,9,11,15)
' y  Z+ ^+ l. \7 B; Z# U# D8 g合并为lc,有序排列。
5 }. q; H3 h. g. D8 |用php实现,不能用sort之类的函数!!!! 9 m; _- z& P+ r3 S* Q3 U0 G
**/ 3 J& u$ D5 K+ t+ ~' ]& p/ p7 p- d
class union { % E7 A! D7 |* M) C3 p
var $lista = array(); 6 N: I& s- Y- u5 ^! B
var $listb = array();
7 C( j* p1 l7 r2 o: [var $listc = array(); 2 V( H, [1 G) U" e; R
1 ~1 Z7 c( n0 Z9 ~2 q1 g4 I6 u
function getlenght($arr) { //获得表长度 2 n: u1 U0 f$ a4 S8 r+ [7 i
return count($arr);
7 N5 n- j0 V+ ]2 ?1 _} 1 L- B. _8 ^1 i3 J: R# h# K$ F' \
, {- n& G7 K6 l, H8 z8 C; S
function getelement($arr, $n) { //获取表中第n个元素,返回 7 H$ Z: t# M& X- L' ]0 x
return $e = $arr[$n] ? $arr[$n] : ''; # {' A; M" c( B6 X8 `4 u2 Q- q
} 3 {$ c; S. Q/ j. G

. l' r: X# W! J2 K+ {function listinsert($arr, $e) { //表末尾插入元素
" B8 J, p1 p* ?. t+ [  Q" {$arr[] = $e;
# F0 |: L; D2 z4 a  qreturn $arr; . @, V3 E& b  C5 c" G
}
; }- `1 D" c2 S" t/ ~}
! J% u* H8 a$ B! q( l8 ?$phpig = new union();
% f4 J; ?2 C! f$lista = $phpig->lista = array(3, 5, 8, 11);
8 J; t# B% m9 E" C3 x7 i7 Z* |0 o$listb = $phpig->listb = array(2, 6, 8, 9, 11, 15);
6 D; x" @7 J9 q# |) ]  p, Q  Y$listc = $phpig->listc; 8 U0 d; E; k, H
$lena = $phpig->getlenght($lista); //取得表大小 ) p  o! ]3 G# s* F/ N
$lenb = $phpig->getlenght($listb);
" x/ \! h. g4 o3 h# C: q% \' E$i = $j = 0; " o1 r' q# I" v* b% J7 v. H. w
while($i < $lena && $j < $lenb) { 4 F( |+ z/ P( L5 y
$ea = $phpig->getelement($lista, $i);
8 n; Q( C8 I2 i9 @/ G- P8 S& A9 [$eb = $phpig->getelement($listb, $j);
+ H0 f4 Q1 _1 _6 D% mif($ea <= $eb) {
' h+ [0 c' K/ P9 K' h' N% A/ m: }$listc = $phpig->listinsert($listc, $ea); 5 M+ A7 _6 k6 c$ k1 B! }0 n/ Z& M
++$i;
: Y3 Z5 Q# c! E; j% Q} else { ( U* p! a+ ?( ]* Y4 P
$listc = $phpig->listinsert($listc, $eb);
& `4 {% A1 ]- ^4 O* S) A++$j; * E2 B/ N5 q: S0 @' q1 {& U
} 2 K# z8 @/ e% e+ P6 X5 s! s
} 7 P8 G* n  P* O7 H
while($i < $lena) {
6 j& K* ^" @# c! n$ea = $phpig->getelement($lista, $i); 8 J! s! G4 J# b# Z# o" A1 S. W$ [
$listc = $phpig->listinsert($listc, $ea); , [( k' Q( p4 S- B. M! q$ Z; e/ v: W
++$i; 5 B& Z7 r' G, M$ p; B' P
}
0 R  C( `1 B6 \while($j < $lenb) {
, G0 ?2 I8 _7 ]( S# S$eb = $phpig->getelement($listb, $j);
/ a- q$ |1 m. X* D6 S$listc = $phpig->listinsert($listc, $eb);
/ [' K4 N  I8 I# }++$j; 0 f, l# Y+ D: a7 U) J6 {
} ( [) n! h6 x% ?" h) K/ t% B
print_r($listc);
3 \0 S) f7 ~* e. ?. F  _' B% ?5 U2 I?>
3 k% ~) b; `9 v5 Z8 T/ e: Z6 f0 D: K2 U$ V3 p9 i. K
更多网页制作信息请查看: 网页制作

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