我有2个数组来找到差异
数组1
array (size=5)
0 =>
array (size=1)
'id' => string '1' (length=1)
1 =>
array (size=1)
'id' => string '2' (length=1)
2 =>
array (size=1)
'id' => string '3' (length=1)
3 =>
array (size=1)
'id' => string '4' (length=1)
4 =>
array (size=1)
'id' => string '5' (length=1)
ARRAY2
array (size=1)
0 =>
array (size=1)
'user_id' => string '1' (length=1)
我使用array_diff_assoc函数来获得差异。
问题:
Notice: Array to string conversion at array_diff_assoc()
是否有可以比较数组中数组的函数?
答案 0 :(得分:0)
试试array_column
:
$array1 = array(
array('id' => 1),
array('id' => 2),
array('id' => 3),
array('id' => 4),
array('id' => 5),
);
$array2 = array(
array('user_id' => 1),
);
$diff = array_diff(array_column($array1, 'id'), array_column($array2, 'user_id'));
var_dump($diff);
输出:
array (size=4)
1 => int 2
2 => int 3
3 => int 4
4 => int 5
答案 1 :(得分:0)
我觉得您应该使用array_diff_key()
代替array_diff_assoc()
,因为array_diff_assoc()
不会递归搜索。它尝试通知用户数组中的一个值也是一个数组,并且必须将其转换为字符串。