У меня есть следующий код для чтения имен элементов из ZabbixAPI:
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' => 'name',
'sortfield' => 'name',
'lastvalue' => 'value'
);
$items = $api->itemGet($params); // get data from api
echo serialize($items);
foreach($items as $item) { // loop through the returned data
echo "<td>".$item."</td>";
}
} catch(Exception $e) {
// Exception in ZabbixApi catched
echo $e->getMessage();
}
С этим я получаю этот результат для каждого элемента:
stdClass Object ( [itemid] => 81351 [name] => Disk root used p )
Но мне нужно только имя элемента, а не объекты json, поэтому на выходе получается просто такой массив: itemname1, itemname2....
Вы можете сделать следующее:
$names = array();
foreach($items as $item) { // loop through the returned data
$names[] = $item->name;
}
Массив $ names будет массивом имен элементов.
Других решений пока нет …