PHP:将具有多个数组的数组转换为单个关联数组

时间:2015-07-07 13:34:56

标签: php arrays

我的数组$rawArray如下所示:

array ( 0 => array ( 'name' => 'firstname', 'value' => 'Max', ), 1 => array ( 'name' => 'lastname', 'value' => 'Smith ', ), 2 => array ( 'name' => 'age', 'value' => 12, ), 3 => array ( 'name' => 'gender', 'value' => 'male', ));

如何以这样的方式转换此数组?

$newArray = ['firstname' => 'Max', 'lastname' => 'Smith', 'age' => 12, 'gender' => 'male'];

到目前为止,我尝试使用foreach循环,但它不起作用:

$newArray = [];
foreach($rawArray as $key=>$value) {
   $newArray[$key] = [$value];
}

2 个答案:

答案 0 :(得分:2)

您只需使用array_column

即可
$arr = array ( 0 => array ( 'name' => 'firstname', 'value' => 'Max', ), 1 => array ( 'name' => 'lastname', 'value' => 'Smith ', ), 2 => array ( 'name' => 'age', 'value' => 12, ), 3 => array ( 'name' => 'gender', 'value' => 'male', ));

var_dump(array_column($arr, "value", "name"));

结果:

array(4) {
  ["firstname"]=>
  string(3) "Max"
  ["lastname"]=>
  string(6) "Smith "
  ["age"]=>
  int(12)
  ["gender"]=>
  string(4) "male"
}

答案 1 :(得分:0)

abc bthe abc them 

结果:

$newArray = array();
foreach($array as $value){
    $newArray[$value['name']] = $value['value'];
}
echo '<pre>';
print_r($newArray);