将PHP数组格式从一种更改为另一种
我正在尝试将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)
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;
很好的解决方案!谢谢这太完美了!谢谢!憎恨者会憎恨。。。