我有一个类似下面的数组
Array
(
[0] => Array
(
[name] => Alex
[age] => 30
[place] => Texas
)
[1] => Array
(
[name] => Larry
[age] => 28
[place] => Memphis
)
)
我如何更改密钥名称?喜欢“名字”到“名字”,“年龄”到“年”,“地点”到“地址”?
答案 0 :(得分:2)
使用foreach
循环迭代您的数组,然后将array_combine
与array_values()
结合使用以创建新数组:
$keys = array('firstname', 'years', 'address');
foreach ($array as & $subarr) {
$subarr = array_combine($keys, array_values($subarr));
}
print_r($array);
输出:
Array
(
[0] => Array
(
[firstname] => Alex
[years] => 30
[address] => Texas
)
[1] => Array
(
[firstname] => Larry
[years] => 28
[address] => Memphis
)
)
答案 1 :(得分:1)
array_map是你的朋友,
$users = array_map(function($user) {
return array(
'firstname' => $user['name'],
'years' => $user['age'],
'location' => $user['place']
);
}, $users);
答案 2 :(得分:0)
我认为唯一的方法是创建一个新数组,并使用旧键将每个值与旧键分配给值。
<?php
//$originalArray is array from the question.
for($i=0; $i<=count($originalArray); $i++){
$originalArray[$i] = rekeyArray($originalArray[$i]);
}
function rekeyArray($a){
$result = array();
if(isset($a['name']))
$result['firstname'] = $a['name'];
if(isset($a['age']))
$result['years'] = $a['age'];
if(isset($a['place']))
$result['address'] = $a['place'];
return $result;
}
?>