Php 如何获得阵列差异

Php 如何获得阵列差异,php,multidimensional-array,difference,Php,Multidimensional Array,Difference,我有两个多维数组 包含一些可用名称的数组1: Array1 ( [0] => Array ( [quantity] => 13 [idname] => 3 [x_name] => Name-3 ) [1] => Array ( [quantity] => 5 [idname] => 4 [x_name] => Name

我有两个多维数组

包含一些可用名称的数组1:

Array1
(
[0] => Array
     (
         [quantity] => 13
         [idname] => 3
         [x_name] => Name-3
     )

[1] => Array
    (
        [quantity] => 5
        [idname] => 4
        [x_name] => Name-4
    )

)
Array2
(
    [0] => Array
        (
            [id_x] => 3
            [x_name] => Name-3
            [id_l] => 4
        )

    [1] => Array
        (
            [id_x] => 4
            [x_name] => Name-4
            [id_l] => 8
        )

    [2] => Array
        (
            [id_x] => 5
            [x_name] => Name-5
            [id_l] => 7
        )

    [3] => Array
        (
            [id_x] => 6
            [x_name] => Name-6
            [id_l] => 5
        )

)
和Array2,其中包含所有可用名称:

Array1
(
[0] => Array
     (
         [quantity] => 13
         [idname] => 3
         [x_name] => Name-3
     )

[1] => Array
    (
        [quantity] => 5
        [idname] => 4
        [x_name] => Name-4
    )

)
Array2
(
    [0] => Array
        (
            [id_x] => 3
            [x_name] => Name-3
            [id_l] => 4
        )

    [1] => Array
        (
            [id_x] => 4
            [x_name] => Name-4
            [id_l] => 8
        )

    [2] => Array
        (
            [id_x] => 5
            [x_name] => Name-5
            [id_l] => 7
        )

    [3] => Array
        (
            [id_x] => 6
            [x_name] => Name-6
            [id_l] => 5
        )

)
Array1[][idname]=Array2[][id_x] 和 阵列1[][x_名称]=阵列2[][x_名称](ofc…)

我的愿望输出将是Array2中Array1不包含的所有元素。。。因此:

Arraydesire
(

    [0] => Array
        (
            [id_x] => 5
            [x_name] => Name-5
            [id_l] => 7
        )

    [1] => Array
        (
            [id_x] => 6
            [x_name] => Name-6
            [id_l] => 5
        )

)
我试过使用array_intersect,但没有成功。 感谢您的帮助。

请查看数组_diff()


如果失败,您可能需要编写一个循环,该循环在array2中运行,并查看其是否在array1中,如果未在array1中,则将其添加到新数组并输出该数组。您可以使用嵌套的foreach循环。如果在array1中找到array2当前元素的值,请删除该元素:

foreach($array2 as $key => $value){
    foreach($array1 as $val){
        if($value['x_name']==$val['x_name']){
            unset($array2[$key]);
            $break;
        }
    }
}
var_dump($array2);
现场示例:


谢谢。它真的很有用!