从数组php中删除元素

时间:2014-06-03 21:45:42

标签: php arrays

我的第一个数组就像:

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

感谢您的帮助。

2 个答案:

答案 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版本?