Ошибка преобразования массива в строку в PHP JSON-декодированном массиве

Я новичок в 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's 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's 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

Решение

Если ваш массив всегда так структурирован с 0 как слово и 1 содержащий массив связанных слов, тогда:

echo $data[0];

foreach ($data[1] as $value) {
echo $value;
}
1

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

Это должно помочь вам начать. 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);
}
}
}
2

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