php数组合并

顾名思义,数组合并就是讲一个或多个数组合并起来,一个数组的值加在前一个数组的后面,最后返回结果数组。

下面就来介绍两种数组合并方式:

1.array_merge();

array_merge()是最常用的一种数组合并方式,它是将一个或多个数组合并,如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

比如:

$array1= array("color"=>"red",2,4);

$array2= array("a","b","color"=>"green","shape"=>"trapezoid",4);

$result=array_merge($array1,$array2);

print_r($result);

以上例程会输出:

Array(

[color] => green

[0] => 2

[1] => 4

[2] => a

[3] => b

[shape] => trapezoid

[4] => 4

)

2.如果你想完全保留原有数组并只想新的数组附加到后面,用+运算符:如:$a=$b+$c;

这里就拿$a=$b+$c来说,如果要数组相加实现数组的合并,后面相加$b和$c必须是数组。

以下是我写的代码对这两种做一个比较:

php数组合并_第1张图片

当判断$data为空的时候,如果用$req = $rew+$data;进行数组 合并的话,是不能对$data为空进行判断,程序会在115行报错。

而当换成$req=array_merge($rew,$data);对数组进行合并时,程序正常运行,对对$data为空进行判断正确。

在这里我们就会发现在array_merge()中,如果数组不存在, 默认当成空数组再来进行合并;但如果采用相加的方式来合并,如果其中的一个数组为空,这种方式合并就不能正常执行。

你可能感兴趣的:(php数组合并)