>我有一个如下所示的数组
Array
(
[0] => Array
(
[name] => Alex
[age] => 30
[place] => Texas
)
[1] => Array
(
[name] => Larry
[age] => 28
[place] => Memphis
)
)
如何更改密钥名称?喜欢"名字"到"名字","年龄"到"年","地点"到"地址"?
使用 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
)
)
在线演示
array_map是你的朋友,
$users = array_map(function($user) {
return array(
'firstname' => $user['name'],
'years' => $user['age'],
'location' => $user['place']
);
}, $users);
演示。
我相信
唯一的方法是创建一个新数组,并将每个值与旧键分配给具有新键的值。
<?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;
}
?>