PHP数组合并
作者:黑马
合并数组是php实用过程中经常碰到的问题,比如处理从不同的表读取出来的具有相同结构的搜索数据,若一一处理它们也未尝不可,但合并成一个数组后再处理可能会更可靠、安全且更简便一些。
在php3里,合并数组可能没有多少选择,或许我们只能通过for或while流程语句加以实现(此法同样适用于php3以后的版本):
$ar1=array("老鼠","猪","狗");
$ar2=array("鸡","鸭","鹅");
for($i=0;$i<count($ar2);$i++){
$ar1[]=$ar2[$i];
}
或者:
$i=0;
while($i<count($ar2)){
$ar1[]=$ar2[$i++];
}
这样,当我们用 print implode(", ",$ar1) 方法将 $ar1 打印出来,将得到预期的合并结果:
老鼠, 猪, 狗, 鸡, 鸭, 鹅
而在php4或更新的php版本里,合并数组还有——
方法一:使用array_merge()函数。例如,将$ar1、$ar2、$ar3三个数组合并起来:
$ar_new = array_merge($ar1,$ar2,$ar3);
结果是,$ar_new包含了$ar1等三个数组的全部元素。
方法二:使用array_merge_recursive()函数。其语法结构与方法一的array_merge()函数一样,合并效果也一致。当多个数组间有相同的元素时,这个函数可能更能保证这些元素绝对不会丢失(recursive意为递归,与merge在一处使用大意是递归合并):
$ar_new = array_merge_recursive($ar1,$ar2,$ar3);
上例的效果是将 $ar1 等三个数组合并成一个数组 $ar_new。
此外,根据 Sterling Hughes 在他与 Andrei Zmievski 合著的 PHP Developer's Cookbook 一书里称,在php4环境里,数组合并还可以用简单相加的方法:
$ar_new = $ar1 + $ar2;
不过,经反复测试,上述式子中,合并后的 $ar_new 的元素仅为 $ar1 的元素,合并并未成功,不知道是大师的错还是PHP的问题:))
【 文章来源:作者原创[2008.3.14] 转载请注明作者及出处信息 】
网 |

