Задать вопрос

Как перебрать json массив?

Здравствуйте не как не могу перебрать массив json
Нужно для автозаполнения вытащить все id и name всех улиц(street)
Получаю вот такой массив json с апи
[{"city":{
"id":"123",
"name":"название города"
},
"streets":[
{
"id":"1",
"name":"имя"
},
{
"id":"2",
"name":"имя"
},
]},

{"city":{
"id":"1234",
"name":"название города"
},
"streets":[
{
"id":"3",
"name":"название улицы"
},
{
"id":"4",
"name":"название улицы"
},
]
}]


Нужно как то вытащить в примерно такой цикл
foreach ($items as $item) {
					
					$json[] = array(
						'id'       => $item['id],
						'name'     =>$item['name']
);
					
				}

Может ткнете куда ни будь где можно посмотреть подобные примеры
Заранее спасибо тем кто откликнется.
  • Вопрос задан
  • 800 просмотров
Подписаться 4 Средний Комментировать
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
// $api_json = ''; //  тут текст из ответа API
$data = json_decode($api_json, true);
$all_streets = [];

foreach ($data as $city) {
    $city_name = $city['name'];
    $city_id = $city['id'];
    $city_streets = $city['streets'];
    foreach ($city_streets as $street) {
        $all_streets[] = [
            'id' => $street['id'],
            'name' => $street['name'],
            // может, и параметры города сюда же?
            'city' => $city_name,
            'city_id' => $city_id,
        ];
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
swert-tech
@swert-tech
Если я тебя правильно понял

$items = json_decode([], true);

foreach ($items as $item) {
    $result = [
        'id'    => $item['id'],
        'name'  => $item['name']
    ];

    var_dump($result);
}
Ответ написан
Комментировать
alexgl2004
@alexgl2004
$json_arr = json_decode($json_string,1);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы