PHP关联数组交集返回两个元素,而不是一个


PHP Associative Arrays Intersection returns two elements instead of one

我有两个关联数组,如下

    Array
(
    [0] => Array
        (
            [description] => aaaaaa
            [value] => 11111
            [id] => 14
        )
    [1] => Array
        (
            [description] => dddddd
            [value] => 44444
            [id] => 0
        )
)


Array
(
    [0] => Array
        (
            [id] => 14
            [value] => 11111
            [description] => aaaaaa
        )
    [1] => Array
        (
            [id] => 15
            [value] => 222222
            [description] => bbbbbb
        )
    [2] => Array
        (
            [id] => 16
            [value] => 333333
            [description] => cccccc
        )
)

我得到的结果是

Array
(
    [0] => Array
        (
            [description] => aaaaaa
            [value] => 11111
            [id] => 14
        )
    [1] => Array
        (
            [description] => dddddd
            [value] => 44444
            [id] => 0
        )
)

注意,dddd在第一阵列中可用,但在第二阵列中不可用。

我正在使用array_intersect_assoc( $array1, $array2 )函数。请帮忙。返回这样的结果根本不符合逻辑

使用以下代码

$intersect = array_uintersect($arr1, $arr2, 'compareDeepValue');
 print_r($intersect);
 function compareDeepValue($val1, $val2)
 {
  return strcmp($val1['value'], $val2['value']);
 }

如果您将启用php通知,您将看到下一个

Notice: Array to string conversion

你可以在这里得到关于你的问题的详尽答案

祝你好运!