【问题标题】:Array keys get lost as they are considered numeric数组键会丢失,因为它们被视为数字
【发布时间】:2013-10-05 11:35:19
【问题描述】:

假设存在一个数组:

$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

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

【问题讨论】:

    标签: php arrays key array-key


    【解决方案1】:

    您只需要使用以下代码:

    array_reverse($array, true)
    

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

    【讨论】:

      猜你喜欢
      • 2012-11-07
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多