Итак, в настоящее время я использую XenForo для чтения значений из массива внутри массива, однако при использовании этого кода у меня возникают проблемы с последним foreach. ErrorException: Invalid argument supplied for foreach()
Множество
{
"data": {
"type": "server",
"id": "121",
"attributes": {
"name": "1",
"ip": "127.0.0.1",
"port": 4000,
},
},
}
Это мой foreach (который получает раздел «атрибуты» указанного выше массива).
foreach($json_array as $key => $arrays){
foreach($arrays as $array){
foreach($array as $key => $value){
$data[$key] = $value;
}
}
}
Кто-нибудь знает, есть ли лучший способ просто получить следующие значения?
$value['name']
$value['ip']
$value['port']
какой foreach следует изменить? первый второй третий? или переделать весь foreach?






Довольно просто. Чтобы получить атрибуты данного массива, вы можете попробовать приведенный выше код. Нет необходимости зацикливать массив, просто используйте метод $ array [key] для получения целевого значения.
$data = $json_array['data']['attributes']
Попробуйте так:
$data['name'] = $json_array['data']['attributes']['name'];
$data['ip'] = $json_array['data']['attributes']['ip'];
$data['port'] = $json_array['data']['attributes']['port'];
Если вы хотите зациклить:
foreach($json_array['data']['attributes'] as $key => $value){
print_r($value);
}
Я бы сказал, что $key также важен в цикле
foreach($json_array['data']['attributes'] as $key => $value). Ваша проблема в том, что ваш код использует значения без массива, такие как"server"вforeach