获取在另一个平面数组中找到的二维数组每行的相交值

问题描述 投票:0回答:1

我有一个数组

[
    [0 => 20, 1 => 36, 3 => 42],
    [0 => 21, 1 => 42, 2 => 30],
]

我还有第二个数组

[24, 42, 26, 12] 

我想使用

array_intersect()
从每个数组中获取相同的值。我遇到的麻烦是弄清楚如何正确设置代码来做到这一点。我希望能有这个

[
    [42],
    [42],
]
php arrays multidimensional-array filtering intersection
1个回答
1
投票

为了匹配您的示例输出,您可以简单地使用

foreach
循环。在您的示例中,二维数组是 $array1,一维数组是 $array2。

$output = [];

foreach ($array1 as $array) {
    $output[] = array_intersect($array, $array2);
}

请注意,仅 PHP 版本 >= 5.4 支持使用 [] 声明数组。对于 PHP 版本 < 5.4:

$array1 = array(array(20, 36, 42), array(21, 42, 30));
$array2 = array(24, 42, 26, 12);

$output = array();

foreach ($array1 as $array) {
    $output[] = array_intersect($array, $array2);
}
© www.soinside.com 2019 - 2024. All rights reserved.