数组键因为被认为是数字而丢失

时间:2013-10-05 11:35:19

标签: php arrays key array-key

假设存在一个数组:

$array = array(
    '1001' => 'a',
    '1002' => 'b',
    '1003' => 'c',
);

现在让我们说有人想要反转那个数组:

$array = array_reverse($array);

问题是,array_reverse似乎将所有数值转换为整数,然后重置索引:

0 => 'c'  - should be '1003' => 'c'
1 => 'b'  - should be '1002' => 'b'
2 => 'a'  - should be '1001' => 'a'

有人可能也试过这个 - 但没有任何运气(如预期的那样):

$array[(string) $index] = 'a';

您甚至可以自己体验here on codepad

如何解决这个问题?我是否必须编写自己的映射函数,可以处理此问题还是有其他方法吗?

1 个答案:

答案 0 :(得分:6)

您只需使用以下代码:

array_reverse($array, true)

根据php文档,要保留键,必须将第二个参数设置为true