這裏是我的測試代碼:比較陣列不打印的差異
$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