我有两个数组在其中,我需要比较两个数组并返回不匹配的数组。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个返回语句。首先是难以到达的。 –