这里是我的测试代码:比较阵列不打印的差异
$a = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"21");
$b = array("Peter"=>"35", "Ben"=>"21", "Joe"=>"43");
function leo_array_diff($a, $b) {
$map = array();
foreach($a as $val) $map[$val] = 1;
foreach($b as $val) unset($map[$val]);
return array_keys($map);
}
print_r(leo_array_diff($a, $b));
echo "<br>";
print_r(array_diff($a, $b));
这里是它打印出:
Array ([0] => 37)
Array ([Ben] => 37)
我要去被提及leo_array_diff()
功能:
第一个问题:
正如你所看到的,彼得是相同的数字,所以这很好。 $a
ben和$b
ben是不同的。 $a
和$b
乔是不同的。但它只是表现出不同。
也许是因为$a
joe 21与$b
相同ben是21?我该如何改变它?彼得需要与彼得相对应,本需要与本等对应...
第二个问题:
本是不同的,是的,因为37和21,但在print_r
,那只能说明Array ([0] => 37)
。我如何让它显示Array ([0] => 21)
?如何在调用函数时编辑函数并不交换参数?
1)看看'和array_diff_assoc()'2)阅读'和array_diff_assoc的文档() “你的论点顺序很重要! – Rizier123
@ Rizier123哇,这工作的第二线。那么使用函数'leo_array_diff()'的第一行呢? – jasonmoqio