Я пытаюсь отобразить информацию из данных 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. Я надеюсь, что я объясняю себя полностью. Любая помощь будет оценена.
Спасибо!
Вам не нужно несколько циклов. Все, что тебе нужно
foreach($data as $location)
{
echo $location->city; // or country or whatever
}
декодировать ваши данные 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