更改多维数组中的内键 php

change inner key in multidimensional array php

我想问一下如何替换多维数组中的内键。 我有一个多维数组:

$array1=
array(array(5000, 6,  325,  3,  3,  517000000),
      array( 20000,  5,  217,  5,  3,  1692000000)
      );

第二个数组是

$array2=array(1,2,3,4,5,6);

我预计新数组是

Array(
[0] => Array
    (
        [1] => 5000
        [2] => 6
        [3] => 325
        [4] => 3
        [5] => 3
        [6] => 517000000
    )

[1] => Array
    (
        [1] => 20000
        [2] => 5
        [3] => 217
        [4] => 5
        [5] => 3
        [6] => 1692000000
    ))

我已经通过另一个 post PHP Replace multidimensional array keys 尝试了下面的代码,但我无法分配我的 array1

的值
foreach($array2 as $array2 ){
    for($k=0;$k<sizeof($array2);$k++){
        for($l=0;$l<$count;$l++){
        $last[$l][$array2] = $array1[$k][$l];
    }
    $i += $count;
    }

}

谢谢

正如@Rizier 在他的评论中所建议的那样,您可以使用 array_map() 和 array_combine() 来做到这一点。

<?php
$array1=
array(array(5000, 6,  325,  3,  3,  517000000),
      array( 20000,  5,  217,  5,  3,  1692000000)
      );
$array2 = array(1, 2, 3, 4, 5, 6);

foreach($array1 as $arr1){
    $array3[] = array_combine($array2, $arr1);
}
var_dump($array3);

输出

  array (size=2)
      0 => 
        array (size=6)
          1 => int 5000
          2 => int 6
          3 => int 325
          4 => int 3
          5 => int 3
          6 => int 517000000
      1 => 
        array (size=6)
          1 => int 20000
          2 => int 5
          3 => int 217
          4 => int 5
          5 => int 3
          6 => int 1692000000

尝试

<?php
$array1=
array(array(5000, 6,  325,  3,  3,  517000000),
      array( 20000,  5,  217,  5,  3,  1692000000)
      );
$newArray = array();
foreach($array1 as $arr){
  array_unshift($arr,'');
  unset($arr[0]);
  $newArray[] = $arr;   
}

print_r($newArray);

这将具有您需要的相同输出。 希望对您有所帮助:)