我的第一个数组就像:
Array ( [0] => Array ( [column_name] => ben_firstname ) )
第二阵列:
Array ( [0] => Array ( [column_name] => ben_unique_id )
[1] => Array ( [column_name] => ben_firstname )
[2] => Array ( [column_name] => ben_lastname )
[3] => Array ( [column_name] => ben_middlename ) )
我想从第二个数组中删除ben_firstname(在第一个数组中)...
我尝试使用array_diff
功能。但是,我收到了错误。
CODE:
print_r(array_diff($first_array, $second_array));
ERROR:
Message: Array to string conversion
感谢您的帮助。
答案 0 :(得分:5)
您不能直接使用array_diff
因为该函数需要数组元素是标量,而在您的情况下它们本身就是数组。
正确的解决方案是使用array_udiff
和一个通过查看每个数组的column_name
键来确定相等性的回调:
$result = array_udiff(
$second,
$first,
function($x, $y) { return strcmp($x['column_name'], $y['column_name']); }
);
<强> See it in action 强>
答案 1 :(得分:0)
你需要这样做:
$newArray = array_diff($array2, $array1);
订单很重要。你得到什么错误?
编辑:您的错误是您尝试打印数组,而不是array_diff无法正常工作。
如果要打印PHP数组,print_r应该可以工作。您使用的是什么PHP版本?