PHP重命名数组中的所有键

时间:2014-05-17 10:39:07

标签: php arrays

我有一个数组数组,如下所示:

Array
(
[0] => Array
    (
        [0] => DC1F180E-FE57-622C-28AE-8194843B4D84
        [1] => First Choice
        [2] => 1
    )

[1] => Array
    (
        [0] => EB877F3C-7A3B-98A7-9240-580FB797030A
        [1] => Second Choice
        [2] => 0
    )

[2] => Array
    (
        [0] => D3C0EA56-73D2-C7E3-8236-EEA2400DFA9C
        [1] => Third Choice
        [2] => 0
    )

)

如何重命名"嵌套"中的所有键?数组在所有"嵌套"中得到类似的东西阵列:

...
[1] => Array
    (
        [id] => EB877F3C-7A3B-98A7-9240-580FB797030A
        [name] => Second Choice
        [status] => 0
    )
...

2 个答案:

答案 0 :(得分:1)

这样您就可以更改数组中的键:

for ($i=0, $c = count($array); $i<$c; ++$i) {
   $array[$i]['id'] = $array[$i][0];
   $array[$i]['name'] = $array[$i][1];
   $array[$i]['status'] = $array[$i][2];
   unset($array[$i][0];
   unset($array[$i][1];
   unset($array[$i][2];
}

你必须使用语法$ array [$ key1] [$ key2]来使用多维数组。

答案 1 :(得分:1)

您可以像这样使用array_walkarray_combine

$a = array(array('foo','bar'),array('foo','bar'));
print_r($a);
$keys = array('first','second');
$new_array = array();
array_walk($a,function($x) use (&$new_array,$keys) { 
    $new_array[] = array_combine($keys,$x); 
});
print_r($new_array);

array_walk遍历数组的每个元素,应用回调函数。 array_combine将一组键与一组值组合在一起以生成一个新数组。

输出:

Array ( [0] => Array ( [0] => foo [1] => bar ) 
        [1] => Array ( [0] => foo [1] => bar ) ) 

Array ( [0] => Array ( [first] => foo [second] => bar ) 
        [1] => Array ( [first] => foo [second] => bar ) )