数组中的foreach

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

我遇到了一个新的 PHP 问题。我有 2 个数组,我想要第三个数组,它是前 2 个数组的组合。第一个数组 $arr1 是这样的:

Array (
    [0] => name [1] => age
)

第二个数组 $arr2 是这样的:

Array ( 
    [0] => Array( [0] => Dave [1] => 20 )
    [1] => Array( [0] => Steve [1] => 25 )
    [2] => Array( [0] => Ace [1] => 23 ) 
)

我的想法是创建一个新数组,名为 $arr3,它应该像这样:

Array ( 
    [0] => Array( [name] => Dave [age] => 20 )
    [1] => Array( [name] => Steve [age] => 25 )
    [2] => Array( [name] => Ace [age] => 23 ) 
)

谁能告诉我该怎么做?

php arrays
3个回答
2
投票
$arr3 = array();
foreach ($arr2 as $person) {
    $arr3[] = array_combine($arr1, $person);
}

0
投票
foreach($arr2 as $subArray){
      foreach($subArray as $i=>$val){
             $arr3[$arr1[$i]] = $val;
      }
}

0
投票

array_combine()
进行映射调用是直接而优雅的。 演示

$keys = ['name', 'age'];

$rows = [
    ['Dave', 20],
    ['Steve', 25],
    ['Ace', 23],
];

var_export(
    array_map(
        fn($row) => array_combine($keys, $row),
        $rows
    )
);
© www.soinside.com 2019 - 2024. All rights reserved.