Хотя они вложены в триггеры Foreach — Предупреждение: переменная, передаваемая каждому (), не является массивом или объектом

Я продолжаю получать сообщение об ошибке «Предупреждение: переменная, переданная каждому () не является массивом или объектом» в сценарии, который, как я знаю, является массивом. Основной код:

Массив построен из вызова API —

$results = $abc->request('thing', $params, 'GET');

Я подтвердил через print_r тот $results это на самом деле массив — вот пример

 Array
(
[currentPage] => 1
[numberOfPages] => 196
[totalResults] => 9754
[data] => Array
(
[0] => Array
(
[id] => 1234
[name] => Robert
[nameShortDisplay] => Bob
[description] => Lorem....
)
)

[status] => success
)

Мой код, который является проблемой, должен циклически проходить по массиву, а во время цикла очищать данные и вставлять их в мою БД.

foreach ($results as $each_results) {
while (list($key, $value) = each ($each_results)) {
$id = mysqli_real_escape_string($connection, $results[data][$key][id]); ...

Почему говорят, что переменная, переданная каждому (), не является массивом?

-2

Решение

foreach ($results as $each_results) { собирается повторить все значения в $results массив (1, 196, 9754 и т. д.).

Некоторые значения не являются массивами, поэтому вы получаете эту ошибку. Но, исходя из того, что вы делаете в цикле while, похоже, что вы сможете просто итерировать data ключ напрямую.

foreach ($results['data'] as $entry) {
$id = mysqli_real_escape_string($connection, $entry['id']);
// ...
}
1

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

foreach оператор принимает массив в $results и перебирает его, присваивая каждому элементу массива $each_results,

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector