Array_intersect针对多维数组的数组

时间:2016-03-18 19:43:25

标签: php arrays multidimensional-array

我有一个数组

Array
(
     [0] => Array 
            (
                [0] => 20
                [1] => 36
                [3] => 42
            )
     [1] => Array 
            (
                [0] => 21
                [1] => 42
                [2] => 30
             )
)

我有第二个

阵列
Array 
(
     [0] => 24
     [1] => 42
     [2] => 26
     [3] => 12
)

我想使用array_intersect从每个数组中获取相同的值。我遇到的问题是弄清楚如何正确设置代码来做到这一点。我希望有这个

Array
(
     [0] => Array 
            (
                [0] => 42
            )
     [1] => Array 
            (
                [0] => 42
             )
)

任何人都可以帮助使用正确的语法或提供替代选项吗?

1 个答案:

答案 0 :(得分:1)

要匹配您的示例输出,您只需使用foreach循环即可。在您的示例中,2D数组是$ array1,1D数组是$ 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);
}