在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”