你只合并了,没去重吧。bad.php合并去重了,good.php没去重呐。没用array_unique.
_SnoW
2014-10-08
4 回答
<?php highlight_string(file_get_contents('index.php')); $a = array(1,2,3,4,5,6,7,8,9); $b = array(9,8,7,6,5,4,3,2,1); print_r(array_merge($a,$b)); ?>Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 9 [10] => 8 [11] => 7 [12] => 6 [13] => 5 [14] => 4 [15] => 3 [16] => 2 [17] => 1 )
array_merge 函数如果遇到重复的键都会后面的覆盖前面的
如果真的是这样,那么结果也是不对的,因为
1-》2 2-》4
1-》3 2-》5
这样合并是错误的,想要的结果是
1->2 2->4 3->3 4->5
如果这两个数组中有相同的数值键名:
<?php
$book1 = array('linux服务器配置与管理','PHP程序设计');
$book2 = array('服务器配置与管理','PHP');
$result = array_merge($book1,$book2);
print_r($result);
?>
结果是:
Array ( [0] => linux服务器配置与管理 [1] => PHP程序设计 [2] => 服务器配置与管理 [3] => PHP )
这时,如果数组中包含相同的数字键名,则后面的不会覆盖前面的值,而是后面的键值按顺序依次增加,
所以做完合并操作之后应该要调用array_unique函数
举报
0/150
提交
取消