【问题标题】:how to sort object array by key in php [duplicate]如何在php中按键对对象数组进行排序[重复]
【发布时间】:2014-04-26 06:00:07
【问题描述】:

我有一个对象数组

 <pre>stdClass Object
(
    [October] => 13.88888888888889
    [January] => 11.11111111111111
    [April] => 17.77777777777778
    [February] => 12.777777777777777
    [August] => 17.77777777777778
    [June] => 16.11111111111111
    [May] => 16.11111111111111
    [July] => 17.77777777777778
    [November] => 12.222222222222221
    [March] => 12.777777777777777
    [December] => 11.11111111111111
    [September] => 15.0
)
</pre>

我想根据月份(键)对这个数组进行排序

我使用了 ksort() 函数,但出现错误,它必须是数组而不是对象。

然后我将它转换为数组作为 array($data);然后再次使用 ksort() 仍然没有结果。

请帮帮我的人怎么办??

【问题讨论】:

  • @MihaiIorga 那是数组,而我有 stdclassobject
  • 所以把它变成数组...使用 $std = json_encode($std), $std = json_decode($std, true)
  • @MihaiIorga 请再次检查我的问题
  • 你看我上一条评论了吗?
  • 不清楚你能给我答案吗?

标签: php arrays sorting ksort


【解决方案1】:

您应该为您的任务尝试以下代码:

$months=array("十月" => "6.2","一月" => "0.2","四月" => "1.5","二月" => "0.2","八月" => " 5.4","六月" => "3.1","五月" => "4.5","七月" => "4.2","十一月" => "2.5", "三月" => "0.5","十二月" => "0.7","九月" => "6.9");

        ksort($months);

                   foreach($months as $key=>$keyvalue)//$x=>$x_value
        {
        echo "<br>".$key."=>".$keyvalue;
        }

【讨论】:

    【解决方案2】:

    你可以使用 ksort() 但你首先需要将你的对象变成一个数组。

    您可以使用 json_encode/json_decode 来做到这一点

    $array = json_decode( json_encode( $stdObject ), true );
    
    ksort( $array );
    
    foreach($array as $key => $val) {
        echo $key. '=' .$val.'<br />'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-17
      • 2012-02-19
      • 2014-07-09
      • 2010-09-29
      • 2020-07-11
      • 1970-01-01
      • 2017-05-31
      • 2012-06-23
      相关资源
      最近更新 更多