我有两个包含数据的数组,需要比较这两个数组并返回不匹配的数组。
我的两个数组长得都像这样:
$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
)
)
compareDeepValue
函数有 3 个返回语句,但只有第一个是可达的。 - Wojciech Jasiński