如何在php中按键对对象数组进行排序

时间:2014-04-26 06:00:08

标签: php arrays sorting ksort

我有一个对象数组

 <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()函数但是错误来了它必须是数组而不是对象。

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

请帮助我的家伙怎么办?

2 个答案:

答案 0 :(得分:0)

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

$ months = array(“October”=&gt;“6.2”,“January”=&gt;“0.2”,“April”=&gt;“1.5”,“二月”=&gt;“0.2”,“八月” “=&gt;”5.4“,”六月“=&gt;”3.1“,”五月“=&gt;”4.5“,”七月“=&gt;”4.2“,”十一月“=&gt;”2.5“,”三月“=&gt;”0.5“,”12月“=&gt;”0.7“,”9月“=&gt;”6.9“);

        ksort($months);

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

答案 1 :(得分:0)

您可以使用kso​​rt(),但首先需要将对象转换为数组。

您可以使用json_encode / json_decode

执行此操作
$array = json_decode( json_encode( $stdObject ), true );

ksort( $array );

foreach($array as $key => $val) {
    echo $key. '=' .$val.'<br />'
}