将PHP数组格式从一种更改为另一种

将PHP数组格式从一种更改为另一种,php,arrays,Php,Arrays,我正在尝试将PHP数组从一种格式转换为另一种格式 我的数组看起来像: array (size=5) 0 => array (size=2) 'name' => string 'userName' (length=8) 'value' => string 'thename' (length=7) 1 => array (size=2) 'name' => string 'email' (length=5)

我正在尝试将PHP数组从一种格式转换为另一种格式

我的数组看起来像:

array (size=5)
  0 =>
    array (size=2)
      'name' => string 'userName' (length=8)
      'value' => string 'thename' (length=7)
  1 =>
    array (size=2)
      'name' => string 'email' (length=5)
      'value' => string 'email@email.com' (length=15)
  2 =>
    array (size=2)
      'name' => string 'password' (length=8)
      'value' => string 'thepassword' (length=11)
  3 =>
    array (size=2)
      'name' => string 'confirmPassword' (length=15)
      'value' => string 'thepassword' (length=11)
  4 =>
    array (size=2)
      'name' => string 'postcode' (length=8)
      'value' => string 'postcode' (length=8)
我需要将其重新格式化为:

array("userName" => "thename",
      "email" => "email@email.com",
      "password" => "thepassword",
      "confirmPassword" => "thepassword",
      "postcode" => "postcode"
     );

我就是想不出来。。请帮助:)

这种问题每天都会出现。当循环遍历原始数组并创建一个新数组非常简单时,为什么还要过分强调寻找一个专门的函数来完成这项工作呢

// Assume $old_array is the one you have that you are working with
$new_array = array();
foreach($old_array as $a)
    $new_array[$a['name']] = $a['value'];

就这样。$new_数组在索引中有来自原始数组的名称,在值中有来自原始数组的值。

自5.5版以来,PHP有一个很棒的内置函数,名为

$newArray = array_column($array, 'value', 'name');
代码段:

$result = array();
foreach($orig as $def) {
    $result[$def['name']] = $def['value'];
}
以下是一个完整的示例:

$orig = array (
    array (
      'name' => 'userName',
      'value' => 'thename',
    ),
    array (
      'name' => 'email',
      'value' => 'email@email.com',
    ),
    array (
      'name' => 'password',
      'value' => 'thepassword',
    ),
    array (
      'name' => 'confirmPassword',
      'value' => 'thepassword',
    ),
    array (
      'name' => 'postcode',
      'value' => 'postcode',
    ),
);

$result = array();
foreach($orig as $def) {
    $result[$def['name']] = $def['value'];
}

echo '<pre>'.PHP_EOL;
echo '<h3>Original Array</h3>'.PHP_EOL;
var_dump($orig);
echo '<h3>Resulting Array</h3>'.PHP_EOL;
var_dump($result);
echo '</pre>'.PHP_EOL;
$orig=数组(
排列(
“名称”=>“用户名”,
'值'=>'名称',
),
排列(
“名称”=>“电子邮件”,
'值'=>'email@email.com',
),
排列(
“名称”=>“密码”,
'值'=>'密码',
),
排列(
'name'=>'confirmPassword',
'值'=>'密码',
),
排列(
'姓名'=>'邮政编码',
'值'=>'邮政编码',
),
);
$result=array();
foreach($orig as$def){
$result[$def['name']=$def['value'];
}
回音“.PHP_EOL;
回显“原始数组”.PHP\u EOL;
var_dump(原价);
回显“结果数组”.PHP\u EOL;
var_dump($结果);
回音“.PHP_EOL;

很好的解决方案!谢谢这太完美了!谢谢!憎恨者会憎恨。。。