JSON数组按键排序

时间:2015-11-12 15:14:56

标签: php arrays json api zabbix

我有这个代码来从API获取JSON数据:

try {
    // connect to Zabbix-API
    $api = new ZabbixApi($api_url, $username, $password);


 $params = array( 

                           'groupids' => '2',
                           'real_items'        =>TRUE,                    
                            'monitored_items'   =>TRUE, 
                            'search' => array('name' => 'Disk root used p'),                                                                    
                            'selectFunctions'   => 'extend',
                            'output'            => 'extend', 
                            'sortfield'         => 'name'


                            );



    $trends = $api->itemGet($params); // get data from api

  $names = array();
    foreach($trends as $trend)  {       // loop through the returned data
      $names[] = $trend->lastvalue;

    }


} catch(Exception $e) {

    // Exception in ZabbixApi catched
    echo $e->getMessage();
}

回复是:

"result": [
        {
            "itemid": "23298",
            "hostid": "10084",
            "lastvalue": "2552",
            "name": "Disk root used p"        
        },

正如你所看到的,我创建了一个数组($names)只有" lastvalue"在里面。现在我试图通过" hostid"对这些值进行排序。这可能吗?如何?

2 个答案:

答案 0 :(得分:3)

首先,您必须对return进行排序,然后才能创建$trends 您可以使用$names功能执行此操作。 它需要一个数组和要用于进行排序的函数名称。 例如

usort

来源David Walsh

答案 1 :(得分:0)

你想要php功能" asort":

http://php.net/manual/en/function.asort.php

它对数组进行排序,维护索引关联。

如果您不想保留索引关联,请使用sort():

http://php.net/manual/en/function.sort.php