【问题标题】:Reverse array in PHP with wrong indexesPHP中的反向数组索引错误
【发布时间】:2017-05-04 15:52:58
【问题描述】:

在 PHP 中,我有一个这样的数组:

Array ( 
    [12] => Dec 
    [01] => Jan 
    [02] => Feb 
    [03] => Mar 
    [04] => Apr 
    [05] => May 
    [06] => Jun 
    [07] => Jul 
    [08] => Aug 
    [09] => Sep 
    [10] => Oct 
    [11] => Nov 
) 

然后我做这样的事情:$reverse_months = array_reverse($months);

我不明白为什么会出现这样的结果:

Array ( 
    [0] => Nov 
    [1] => Oct 
    [09] => Sep 
    [08] => Aug 
    [07] => Jul 
    [06] => Jun 
    [05] => May 
    [04] => Apr 
    [03] => Mar 
    [02] => Feb 
    [01] => Jan 
    [2] => Dec 
)

与原始$months 数组相比,您可以清楚地看到过去三个月的索引错误:-(

谁能解释一下为什么会发生这种奇怪的行为,我该如何解决?结果结果是我想要的结果,除了 10 月、11 月和 12 月的数组索引错误。谢谢!

【问题讨论】:

  • $reverse_months = array_reverse($months,true);
  • 你试过$reverse_months = array_reverse($months, true);吗?
  • 试试这个array_reverse($input, true) ;
  • php.net/manual/en/function.array-reverse.php查看array_reverse的描述

标签: php arrays reverse


【解决方案1】:

10、11、12 是数字键,其中 01、02 等是命名键,php 所做的就是重新枚举数字键。其中有 3 个,所以 0,1,2。命名键不会被重新枚举(它们应该如何?)。要同时保留整数键,请使用

array_reverse($months, true);

【讨论】:

  • 哇,有时答案很简单,让你发疯:D 救命稻草,非常感谢!
猜你喜欢
  • 2017-12-23
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 2011-02-10
  • 1970-01-01
  • 2018-05-04
相关资源
最近更新 更多