2014-09-29 80 views
0

我有2个阵列找到差异PHP和array_diff_assoc()比较多deminsions阵列

数组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) 

数组2

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

只是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 
0

我觉得你应该使用array_diff_key()代替array_diff_assoc()因为array_diff_assoc()不进行递归搜索。它尝试通知用户,其中一个数组中的值也是一个数组,并且必须将其转换为字符串。