Zabbix Чтение Api

1

Я получаю информацию от Zabbix Api с помощью библиотеки PHP. В настоящий момент я получаю "lastvalue" из json Array:

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',
                            'limit'             => '1'

                            );



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

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

    }
//print_r($names);

} catch(Exception $e) {

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

Но теперь я хочу получить "lastvalue" плюс "имя" элемента в этом массиве, например: "name" + "lastvalue". Как я могу получить оба из них в свой массив $names[]?

  • 0
    В вашем foreach вы можете выполнить foreach($trends as $trendKey => $trendValue) { ... } , это позволяет получить индекс, будь то 1 (числовой) или один (ассоциативный), и использовать оба. Например, $arr = array( 'name' ] => 'value' ); $trendKey будет 'name' а $trendValue будет 'value' - Подумав об этом, я добавлю ответ;)
Теги:
arrays
zabbix

1 ответ

1
Лучший ответ

Вот мой ответ из моих комментариев, надеюсь, это то, что вы ищете!

$trends = $api->itemGet($params);
$names = array();
foreach($trends as $trendKey => $trendValue)
{
    $names[$trendKey] = $trendValue;
}

#Test the names array
foreach ($names as $nameKey => $nameValue)
{
    print("{$nameKey} = {$nameValue}<br />");
}

Возвращаемое значение:

groupids = 2
real_items = TRUE
...
sortfield = name
limit = 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню