Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,如果某个数组中的值与另一个数组中的值不相等,则从该数组中删除该值_Php_Arrays_Multidimensional Array - Fatal编程技术网

在PHP中,如果某个数组中的值与另一个数组中的值不相等,则从该数组中删除该值

在PHP中,如果某个数组中的值与另一个数组中的值不相等,则从该数组中删除该值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个这样的数组 Array ( [0] => Array ( [0] => 83 [1] => 82 [2] => 81 ) [1] => Array ( [0] => 81 [1] => 82 [2] => 83

我有一个这样的数组

Array
(
    [0] => Array
        (
            [0] => 83
            [1] => 82
            [2] => 81
        )

    [1] => Array
        (
            [0] => 81
            [1] => 82
            [2] => 83
            [3] => 100
            [4] => 101
            [5] => 102
            [6] => 103
            [7] => 104
            [8] => 105
        )

)
Array
(
    [0] => Array
        (
            [0] => 83
            [1] => 82
            [2] => 81
        )

    [1] => Array
        (
            [0] => 81
            [1] => 82
            [2] => 83
        )

)
我想从第一个数组中删除任何不等于这个数组的值

Array
(
    [0] => 83
    [1] => 82
    [2] => 81
)
但是我想保持与第一个数组相同的结构。所以我最终会得到这样的结果

Array
(
    [0] => Array
        (
            [0] => 83
            [1] => 82
            [2] => 81
        )

    [1] => Array
        (
            [0] => 81
            [1] => 82
            [2] => 83
            [3] => 100
            [4] => 101
            [5] => 102
            [6] => 103
            [7] => 104
            [8] => 105
        )

)
Array
(
    [0] => Array
        (
            [0] => 83
            [1] => 82
            [2] => 81
        )

    [1] => Array
        (
            [0] => 81
            [1] => 82
            [2] => 83
        )

)

实现这一点的最佳方法是什么?

您始终可以将数组设置为第一个和第二个数组与函数的交点

<?php
$array[1] = array_intersect($array[0], $array[1]);
?>

您始终可以将数组设置为第一个和第二个数组与函数的交点

<?php
$array[1] = array_intersect($array[0], $array[1]);
?>

$temp=array
(
0=>数组
(
0 => 83,
1 => 82,
2 => 81
),
1=>数组
(
0 => 81,
1 => 82,
2 => 83,
3 => 100,
4 => 101,
5 => 102,
6 => 103,
7 => 104,
8 => 105
)
);
对于($i=0,$tot=count($temp[1]);$i
$temp=array
(
0=>数组
(
0 => 83,
1 => 82,
2 => 81
),
1=>数组
(
0 => 81,
1 => 82,
2 => 83,
3 => 100,
4 => 101,
5 => 102,
6 => 103,
7 => 104,
8 => 105
)
);

对于($i=0,$tot=count($temp[1]);$i如果
$array
是您的起始数组,
$matches
是您要匹配的值数组

foreach ($array as $key => $subarray) {
    foreach ($subarray as $subsubarray) {
        foreach ($matches as $match) {
            if ($subsubarray == $match) {
                $finalarr[$key][] = $subsubarray;
            }
        }
    }
}

$finalarr
将是您想要的结果。

如果
$array
是您的起始数组,
$matches
是您想要匹配的值数组

foreach ($array as $key => $subarray) {
    foreach ($subarray as $subsubarray) {
        foreach ($matches as $match) {
            if ($subsubarray == $match) {
                $finalarr[$key][] = $subsubarray;
            }
        }
    }
}

$finalarr
将是您想要的结果。

不过我需要关于“保持相同结构”的更多信息。您也需要相同的键吗?相同的顺序?@tom不,键或值的顺序并不重要,它只需要是多维数组。谢谢我的示例。我需要关于“保持相同的结构”。你也需要相同的键吗?相同的顺序吗?@tom不,键或值的顺序并不重要,它只需要是一个多维数组。感谢我的示例。$array1=
[“2”]
,$array2=
[“2”,“2”,“7”,“7”]
数组相交($array1,$array2)=[“7”]
但是
数组相交($array2,$array1)=[“7”,“7”]
但是
数组相交($array2,$array2=
[“2”,“2”,“7”,“7”]
数组相交($array1,$array2)=[“7”]
但是
数组相交($array2,$array1)=[“7”