如何更改多维数组的键名称

时间:2013-03-10 16:05:23

标签: php arrays multidimensional-array

我有两个数组,其中一个包含一个新的键名

$assoc = ['name', 'lastname', 'pesel']; 

第二看这个

$inputs = ['John', 'Don', '987987', 'Mike', 'Evans', '89779' ];

数组$assoc是新的密钥名称,我想将[0][1]更改为['name']

array(2) {
  ['person'] =>
  array(3) {
    ['name'] => string(4) "John"
    ['lastname'] => string(3) "Don"
    ['pesel'] => string(6) "987987"
  }
  ['person'] =>
  array(3) {
    ['name'] => string(4) "Mike"
    ['lastname'] => string(5) "Evans"
    ['pesel'] => string(5) "89779"
  }
}

感谢您的帮助

2 个答案:

答案 0 :(得分:5)

这很简单:

$new_array = array();

foreach(array_chunk($inputs, 3) as $person) {
   $new_array[] = array_combine($assoc, $person);
}

答案 1 :(得分:-1)

<?php
$assoc=Array("name", "lastname", "pesel");
$inputs=Array('John', 'Don', '987987', 'Mike', 'Evans', '89779' );

$resultant_array=Array();
for($i=0; $i<count($inputs); $i+=count($assoc)){
//echo $i."\n\n";
 for($j=0; $j<count($assoc); $j++){

    $b2g[$assoc[$j]]=$inputs[$i+$j];
 }
 $resultant_array[]=$b2g;
}   

print_r($resultant_array);

这是一个更冗长和通用的用途..我实际上已经使用了很多递归..