У меня есть результат json из URL-адреса:
{
"result": [{
"user.name": "Spider Man",
"user": "a4ac7bfe6f581640a62d3c31be3ee4dc"
}, {
"user.name": "Bat Man",
"user": "af406b85e4b13500b95fa1eeac1ce626"
}, {
"user.name": "Iron Man",
"user": "18ed9aba4ffb07006979ab6ba110c757"
}, {
"user.name": "Ant Man",
"user": "877a503a98cc4200b95f526ea1ece471"
}, {
"user.name": "Captain America",
"user": "8ec0d9634f2f22004b19ca1f0310c791"
}]
}
Как создать цикл foreach, чтобы получить следующий результат:
Spider Man
Bat Man
Iron Man
Ant Man
Captain America
То же самое и с пользовательскими значениями в json.
Я пробовал следующий код, но не могу понять:
$json = file_get_contents($queryURL, false, $context) or die ("keine verbindung");
$array = json_decode($json, true);
foreach($array as $data) {
$data->user;
}
Спасибо за вашу помощь.
Для этого даже не нужен цикл, просто сделайте echo implode('<br>', array_column($array, 'user.name'));
Вы декодировали как массив, а не объект. Также есть еще один уровень result
:
foreach($array['result'] as $data) {
echo $data['user'];
}
Большое спасибо. Это сработало для меня ;-)
Когда вы передаете true в качестве второго параметра в
json_decode($json, true)
, он преобразует его в массив, поэтому вам нужно использовать что-то вроде$data['elementName']