Указан неверный аргумент для foreach () в файле php

1

У меня есть следующая ошибка в коде ниже.

Предупреждение: неверный аргумент для foreach() в /admin/controller/module/megamenu.php в строке 263 Список обновлен 15-05-27 23:25:14!

Строка 263: foreach ($jsonArray as $subArray) {

Я проверил на другом сервере и не вижу эту ошибку (php5.4), но появляется мой сервер с php5.3, php5.5. Что пропало?

if (isset($_GET['jsonstring'])) {
        if($this->validate()){
            $jsonstring = $_GET['jsonstring'];
            $jsonDecoded = json_decode(html_entity_decode($jsonstring));

            function parseJsonArray($jsonArray, $parentID = 0) {
                $return = array();
                foreach ($jsonArray as $subArray) {
                    $returnSubSubArray = array();
                    if (isset($subArray->children)) {
                        $returnSubSubArray = parseJsonArray($subArray->children, $subArray->id);
                    }
                    $return[] = array('id' => $subArray->id, 'parentID' => $parentID);
                    $return = array_merge($return, $returnSubSubArray);
                }

                return $return;
            }


            $readbleArray = parseJsonArray($jsonDecoded);

            foreach ($readbleArray as $key => $value) {
                if (is_array($value)) {
                    $this->model_menu_megamenu->save_rang($value['parentID'], $value['id'], $key, $data['active_module_id']);
                }   
            }

            die("The list was updated ".date("y-m-d H:i:s")."!");

        } else {
            die($this->language->get('error_permission'));
        }
    }
  • 1
    почему html_entity_decode ?
  • 0
    Поскольку $jsonArray не $jsonArray до $jsonArray функции parseJson() я думаю, что это ваша проблема
Показать ещё 4 комментария
Теги:
foreach

2 ответа

2

+ Изменить

$jsonDecoded = json_decode(html_entity_decode($jsonstring)); 

в

$jsonDecoded = json_decode(html_entity_decode($jsonstring),true);

и $jsonDecoded будет массивом

-1

Я думаю, что в некоторых случаях мы должны использовать функции implode и explode при работе с json-данными в php, попробуйте это после декодирования ваших json-данных, чтобы преобразовать строку в массив.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню