我有兩個數組在其中,我需要比較兩個數組並返回不匹配的數組。PHP比較數組並返回不同
我有兩個數組,這兩個看起來像這樣:
$arr1 = array(
array('name' => 'Alan', 'age' => '34', 'country' => 'usa'),
array('name' => 'James', 'age' => '24', 'country' => 'spain'),
);
$arr2 = array(
array('name' => 'Alan', 'age' => '34', 'country' => 'usa'),
array('name' => 'James', 'age' => '54', 'country' => 'spffain'),
);
我想通過比較姓名,年齡和國家的數組並返回我不匹配的數組。
到目前爲止我的代碼:
$intersect = array_uintersect($arr1, $arr2, 'compareDeepValue');
echo "<pre>", print_r($intersect);
function compareDeepValue($val1, $val2)
{
return strcmp($val1['age'], $val2['age']);
return strcmp($val1['country'], $val2['country']);
return strcmp($val1['name'], $val2['name']);
}
上面的代碼返回匹配的數組。我如何更改代碼以獲取不匹配的數組?
預期輸出:
Array
(
[0] => Array
(
[name] => James
[age] => 21
[country] => spain
)
)
可以使用的strcmp($ VAL1 [ '年齡'],$ VAL2 [ '年齡']); –
檢查這個帖子:http://stackoverflow.com/questions/12169821/compare-differences-in-multidimensional-array – Javi
你的'compareDeepValue'有3個返回語句。首先是難以到達的。 –