Intereting Posts
Получение почты с сервера POP3 с использованием php Laravel 5.3 Создание возвращаемых моделей «Поле не имеет значения по умолчанию» Получить автоматически сгенерированный идентификатор после вставки PHP domDocument для удаления дочерних узлов дочернего узла Необходимо загрузить файлы в документы Google из моего приложения и сохранить ссылку на загруженный файл Проблема с php forking Основы клиентской и серверной сторон Как я могу сделать массив раз с интервалом в полчаса? Как сериализовать / сохранить DOMElement в $ _SESSION? Является ли это разумным способом обработки getters / seters в классе PHP? Разница в PHP между уведомлением и предупреждением Лучшие практики: работа с длинными многострочными строками в PHP? Как отправить электронное письмо с помощью PHP? RSA-расшифровка данных в C # (.NET 3.5), которая была зашифрована с помощью openssl в php 5.3.2 Что такое клонирование объектов в php?

Неустранимая ошибка: нельзя использовать смещение строки в виде массива

Array ( [0] => Array ( [auth_id] => 1 [auth_section] => Client Data Base [auth_parent_id] => 0 [auth_admin] => 1 [sub] => Array ( [0] => Array ( [auth_id] => 2 [auth_section] => Client Contact [auth_parent_id] => 1 [auth_admin] => 1 ) ) ) [1] => Array ( [auth_id] => 6 [auth_section] => All Back Grounds [auth_parent_id] => 0 [auth_admin] => ,4 [sub] => Array ( [0] => Array ( [auth_id] => 7 [auth_section] => Edit Custom [auth_parent_id] => 6 [auth_admin] => 1 ) ) ) [2] => Array ( [auth_id] => 20 [auth_section] => Order Mail [auth_parent_id] => 0 [auth_admin] => 1 [sub] => ) } 

Когда я обрабатываю суб внутренний массив

 for($in=0 ; $in < count($auth); $in++){ $autsub = $auth[$in]["sub"]; for($g=0 ; $g<count($autsub); $g++){ echo $autsub[$g]["auth_id"]; } } 

он показывает эту ошибку

Неустранимая ошибка: нельзя использовать смещение строки в виде массива ………

как я могу избежать этого 🙁

Solutions Collecting From Web of "Неустранимая ошибка: нельзя использовать смещение строки в виде массива"

Проблема в том, что последняя запись в массиве ( 2 ) не имеет sub массива, но вы все равно пытаетесь получить к ней доступ. Вам нужно будет проверить, существует ли запись, и если это массив, прежде чем перебирать его. Вот пример использования foreach :

 foreach ($array as $auth) { if (!empty($auth['sub']) && is_array($auth['sub'])) { foreach ($auth['sub'] as $sub) { if (!empty($sub['auth_id'])) { echo $sub['auth_id']; } } } } 

Вы можете проверить тип смещения с помощью функции is_array (). Если вам нужен лучший ответ, отправьте код обработки. Проверьте, являются ли $ auth [$ in] и $ autsub [$ g] массивами.