Нужны данные JSON для отображения нескольких массивов с foreach

Я пытаюсь отобразить информацию из данных JSON, которые я создал, используя PHP для каждого цикла. У меня проблема с многомерным массивом. Я не могу выбрать их все сразу, а когда их 30, я не хочу иметь 30 для каждого цикла.

Вот мои данные Json:

[
{
"country": "us",
"city_ascii": "destin",
"city": "Destin",
"region": "FL",
"population": "12115",
"latitude": "30.393333",
"longitude": "-86.495833"},
{
"country": "us",
"city_ascii": "destino",
"city": "Destino",
"region": "PR",
"population": "0",
"latitude": "18.130278",
"longitude": "-65.436667"}
]

Вот мой PHP для обработки JSON:

$json = json_encode($rows,JSON_PRETTY_PRINT);

$data = json_decode($json);foreach($data[0] as $key => $value) {
if($key == 'city_ascii' || $key == 'latitude' || $key == 'longitude') {

} else{
echo $key.' '.$value.'<br>';
}
}

Как вы можете видеть, я выбрал $ data [0], в действительности я хочу, чтобы каждый массив отображался из JSON в этом цикле foreach. Я надеюсь, что я объясняю себя полностью. Любая помощь будет оценена.

Спасибо!

-1

Решение

Вам не нужно несколько циклов. Все, что тебе нужно

foreach($data as $location)
{
echo $location->city;  // or country or whatever
}

скрипка

1

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

декодировать ваши данные JSON в виде массива с передачей true параметр в json_decode и повторить весь цикл

$str = '[
{
"country": "us",
"city_ascii": "destin",
"city": "Destin",
"region": "FL",
"population": "12115",
"latitude": "30.393333",
"longitude": "-86.495833"},
{
"country": "us",
"city_ascii": "destino",
"city": "Destino",
"region": "PR",
"population": "0",
"latitude": "18.130278",
"longitude": "-65.436667"}
]';
$json = json_decode($str, true);

foreach($json as $k=>$v) {
foreach($v as $k1=>$v1) {
if($k1 == 'city_ascii' || $k1 == 'latitude' || $k1 == 'longitude'){}
else{ echo $k1.' '.$v1.'<br>';}
}
}

даст вам вывод: —

country us
city Destin
region FL
population 12115
country us
city Destino
region PR
population 0
1

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