如何从另一个保存值的数组中删除键


How to remove key from another array that holds values?

假设我们有以下两个数组

假设这称为$array1

Array
(
    [0] => Array
        (
            [Name] => Jack
            [Height] => 190
            [Shoe Size] => 40
        )
    [1] => Array
        (
            [Name] => Rose
            [Height] => 160
            [Shoe Size] => 52
        )
)

假设这称为$array2

Array
(
    [0] => Name
    [1] => Shoe Size
)

现在,我需要做的是将键保留在$array2中找到的$array1作为值,所以我期望的输出是这样的

Array
(
    [0] => Array
        (
            [Name] => Jack
            [Shoe Size] => 40
        )
    [1] => Array
        (
            [Name] => Rose
            [Shoe Size] => 52
        )
)

我尝试了array_intersect和array_intersect_key但他们都失败了。 有人知道如何做到这一点吗?

你需要的是array_intersect_key array_flip

$array3 = array_flip($array2);
foreach($array1 as &$a) {
   $a = array_intersect_key($a, $array3);
}