我有一个看起来像这样的数组:
array(
0 => 'John',
1 => 'Smith',
3 => '123-456-7890'
4 => 'john.smith@company.com'
)
我想以编程方式更改密钥,以便数组成为关联数组:
array(
'first' => 'John',
'last' => 'Smith',
'phone' => '123-456-7890'
'email' => 'john.smith@company.com'
)
这样做最干净/最简洁的方法是什么?
答案 0 :(得分:5)
array_combine()
函数可能就是你要找的东西:
$keys = array('first', 'last', 'phone', 'email');
$new_arr = array_combine($keys, $arr);
答案 1 :(得分:4)
array_combine
可能是这里的最佳方法。如果您有一个有序列表,您可以使用以下方法再次将其与原始密钥合并:
$array = array_combine(array("first", "last", "phone", "email"), $list);
答案 2 :(得分:0)
假设数组键是常量,那么0总是名字,1是姓氏等......
$new_keys = array(0 => 'first', 1 => 'last', 3 => 'phone', 4 => 'email');
foreach($new_keys as $oldkey => $newkey) {
$orig_array[$newkey] = $orig_array[$oldkey];
unset($orig_aray[$oldkey]);
}
如果映射不是常量,那么每次都必须动态构建$ new_keys数组,或者只是手动重新映射。