数组的区别


array difference

我有一个数组我们把它命名为数组1

Array
(
    [0] => Array
        (
            [Machine] => Array
                (
                    [id] => 7
                    [name] => XYZ
                    [priority] => 1
                )
            [Software] => Array
                (
                    [id] => 472
                )
        )
    [1] => Array
        (
            [Machine] => Array
                (
                    [id] => 6
                    [name] => ABC
                    [priority] => 0
                )
            [Software] => Array
                (
                    [id] => 470
                )
        )
    [2] => Array
        (
            [Machine] => Array
                (
                    [id] => 1
                    [name] => IEU
                    [priority] => 3
                )
            [Software] => Array
                (
                    [id] => 471
                )
        )
)

然后是另一个数组命名为array2

Array
(
    [0] => 7
    [1] => 5
    [2] => 4
    [3] => 3
    [4] => 6
)

如果数组2没有[Machine][id],那么我想从数组1中删除它。像上面的例子一样,我将删除

   [2] => Array
            (
                [Machine] => Array
                    (
                        [id] => 1
                        [name] => IEU
                        [priority] => 3
                    )
                [Software] => Array
                    (
                        [id] => 471
                    )
            )

有什么想法吗?由于

也许…

foreach ($array1 AS $key => $array) {
    if (!in_array($array['Machine']['id'], $array2))
       unset($array1[$key]);
}

试试这样写:

$new_array = array();
foreach ($array1 as $platform)
{
     if (in_array($platform["Machine"]["id"], $array2))
     {
         $new_array[] = $platform;
     }
}
return $new_array;