Я новичок в PHP, работающем над скриптом, чтобы получить данные JSON с URL-адреса. Я получил данные из URL-адреса и расшифровал этот JSON.
Но проблема в том, что декодированный массив JSON не преобразовывается в String
. Ошибка возникает, когда я пытаюсь запустить цикл foreach
здесь, это вывод массива:
Имя массива: $data
ВЫВОД:
array(2) {
[0]=> string(5) "world"
[1]=> array(12) {
[0]=> string(15) "worldstarhiphop"
[1]=> >string(17) "world series 2014"
[2]=> string(18) "world of solitaire"
[3]=> string(9) "world map"
[4]=> string(19) "world tallest cow"
[5]=> string(10) "world news"
[6]=> string(12) "world series"
[7]=> string(9) "worldstar"
[8]=> string(12) "world market"
[9]=> string(29) "worldstarhiphop official site"
[10]=> string(19) "world tallest dog"
[11]=> string(17) "world of warcraft"
}
}
Я пробовал:
if(is_array($data)) {
foreach ($data as $key=>$value) {
echo $value;
}
}
Предоставление этой ошибки:
Notice: Array to string conversion in
Если ваш массив всегда структурирован так, как 0
как слово и 1
содержащий массив связанных слов, тогда:
echo $data[0];
foreach ($data[1] as $value) {
echo $value;
}
Это должно помочь вам начать работу. Var_dump в основном предназначен для отладки, показывая вам содержимое переменной.
foreach($data as $foo) {
if(is_array($foo) {
foreach($foo as $bar) {
var_dump($bar);
}
} else {
var_dump($foo);
}
}
Подумайте, что это также можно решить рекурсивным образом.
function printNestedArray($foo)
{
if(is_array($foo) === false) {
var_dump($foo);
} else {
foreach($foo as $bar) {
printNestedArray($bar);
}
}
}
var_dump
на echo
и посмотрите, что произойдет.
$data
- это массив, содержащий как строки, так и массивы. Итак, в одной итерации цикла$value
является массивом.