Php 按其他数组的值筛选多维数组

Php 按其他数组的值筛选多维数组,php,arrays,multidimensional-array,filtering,Php,Arrays,Multidimensional Array,Filtering,请帮助我了解如何使用其他数组值作为第一个数组的键来成功筛选多维数组 $multidimensional = Array ( [0] => Array('var1' => val1), [1] => Array('var2' => val2), [2] => Array('var3' => val3),

请帮助我了解如何使用其他数组值作为第一个数组的键来成功筛选多维数组

$multidimensional = Array (
                           [0] => Array('var1' => val1),
                           [1] => Array('var2' => val2),
                           [2] => Array('var3' => val3),
                           [3] => Array('val4' => val4)
                       );
$filter = Array(1, 3);
最终结果应该是:

$multidimensional = Array (
                           [1] => Array('var2' => val2),
                           [3] => Array('val4' => val4)
                       );
它应该类似于array_slice或其他方法,以便于执行此类任务。提前谢谢你

您可以使用以下功能:

$result = array_intersect_key($multidimensional, array_flip($filter));
您可以使用以下功能:

$result = array_intersect_key($multidimensional, array_flip($filter));

用一个小例子来扩展我的评论

<?php

$arrayOne = [
    1 => ['foo' => 'bar'],
    2 => ['foo' => 'bar'],
    3 => ['foo' => 'bar'],
    4 => ['foo' => 'bar'],
];

$arrayTwo = [1 => [], 3 => []];

print_r(array_intersect_key($arrayOne, $arrayTwo));

用一个小例子来扩展我的评论

<?php

$arrayOne = [
    1 => ['foo' => 'bar'],
    2 => ['foo' => 'bar'],
    3 => ['foo' => 'bar'],
    4 => ['foo' => 'bar'],
];

$arrayTwo = [1 => [], 3 => []];

print_r(array_intersect_key($arrayOne, $arrayTwo));

使用
array\u diff\u键
array\u flip
功能的另一个变体:

$multidimensional = array_diff_key($multidimensional, array_diff_key($multidimensional, array_flip($filter)));

print_r($multidimensional);
输出:

Array
(
    [1] => Array
        (
            [var2] => val2
        )

    [3] => Array
        (
            [val4] => val4
        )
)

使用
阵列差异键和
阵列翻转功能的另一种变体:

$multidimensional = array_diff_key($multidimensional, array_diff_key($multidimensional, array_flip($filter)));

print_r($multidimensional);
输出:

Array
(
    [1] => Array
        (
            [var2] => val2
        )

    [3] => Array
        (
            [val4] => val4
        )
)

谢谢,这正是我需要的;)萨纳塔特!:)谢谢,这正是我需要的;)萨纳塔特!:)