PHP :数组第一个值设置为其余值的键

PHP : Array first value set as key for remaining ones

我有以下数组

  $a = [
    [
      0 => 'Name',
      1 => 'Address '
    ],
    [
      0 => 'Name 1',
      1 => 'Address 1'
    ],
    [
      0 => 'Name 2',
      1 => 'Address 2'
    ]
  ];

如何将第一个元素值分配给其余键?

于是就变成了

  $a = [
    [
      'Name' => 'Name 1',
      'Address' => 'Address 1'
    ],
    [
      'Name' => 'Name 2',
      'Address' => 'Address 2'
    ]
  ];

所以基本上我得到了这个 excel 文件数组并且需要以上类型的数组结果。

试试这个:

$array = [
    [
      0 => 'Name',
      1 => 'Address '
    ],
    [
      0 => 'Name 1',
      1 => 'Address 1'
    ],
    [
      0 => 'Name 2',
      1 => 'Address 2'
    ]
  ];
$new_array = array();
$name = $array[0][0];
$address = $array[0][1];
//remove first key
array_shift($array);
foreach($array as $key => $value)
{
    $new_array[$key] = [
       $name => $value[0],
       $address => $value[1]
    ];
}

var_dump($new_array);

输出:

array(2) {
  [0]=>
  array(2) {
    ["Name"]=>
    string(6) "Name 1"
    ["Address "]=>
    string(9) "Address 1"
  }
  [1]=>
  array(2) {
    ["Name"]=>
    string(6) "Name 2"
    ["Address "]=>
    string(9) "Address 2"
  }
}

使用array_shift() with foreach() and array_combine():

$firstValue = array_shift($a); //remove first value from array and assign it to variable

foreach($a as &$v){ //loop over remaining values
    $v = array_combine($firstValue,$v); //combine both array to create key value pair
}

print_r($a);

输出:https://3v4l.org/1J6pU And https://3v4l.org/qMFPi

参考:- Passing by Reference