Доступ к объекту в массиве в массиве

Мой вызов API дал мне следующий код:

Array ( [ABC01] =>
Array ( [0] =>
stdClass Object (
[hostid] => 12345
[location_lat] => 40
[location_lon] => 70
[site_address_a] => Hello World Blvd
[site_address_b] => Foo 100
[site_city] => Redmond
[site_state] => Washington
[site_country] => USA ) )

В конечном итоге я пытаюсь получить это:

Array ( [ABC01] =>
[hostid] => 12345
[location_lat] => 40
[location_lon] => 70
[site_address_a] => Hello World Blvd
[site_address_b] => Foo 100
[site_city] => Redmond
[site_state] => Washington
[site_country] => USA ) )

У меня есть почти три цикла foreach, и я все еще немного растерялся. Я знаю, что должен быть легкий путь, но я не слишком знаком с PHP. Я просто использовал get_object_vars, чтобы получить объект местоположения:

 foreach($getLocations as $key => $value) {
print_r(get_object_vars($value[0]));
}

Я на правильном пути? Затем я запутываюсь, как связать это обратно с именем хоста (ABC01), так как это то, что я хочу выводить, а не hostid. Спасибо за вашу помощь, этот нуб PHP ценит это.

0

Решение

Если вывод, который вы хотите на самом деле это:

array(1) {
["ABC01"]=>
array(8) {
["hostid"]=>
int(12345)
["location_lat"]=>
int(40)
["location_lon"]=>
int(70)
["site_address_a"]=>
string(16) "Hello World Blvd"["site_address_b"]=>
string(7) "Foo 100"["site_city"]=>
string(7) "Redmond"["site_state"]=>
string(10) "Washington"["site_country"]=>
string(3) "USA"}
}

Тогда да, я думаю, что вы на правильном пути, это должно привести к этому:

$output = [];
foreach($data as $key => $value) {
$output[$key] = get_object_vars($value[0]);
}
var_dump($output);

Обратите внимание, что для каждого имени хоста используется один элемент «0».

Затем я запутался, как связать это обратно с именем хоста (ABC01)
так как это то, что я хочу выводить, а не хостид

Имя хоста — это ключ $ в foreach, он используется для указания ключа выходного массива.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]