json_decode — как перевести результат в массив?

Функция json_decode автоматически преобразует результат в тот формат, который считает предпочтительным.

Так например json строка true будет преобразована в значение true типа boolean.
Строки false и null также переведутся в соответствующие типы.

С массивами все немного сложнее: Обычный массив с числовыми ключами идущими по порядку, пропущенный через функции json_encode, а затем json_decode так и останется массивом.
Если же преобразуется ассоциативный массив или в случае, когда числовые ключи идут не по порядку, при декодировании станет экземпляром класса stdObject.

Как вместо объекта, получить обычный ассоциативный массив?

Преобразовать результат json_decode в массив достаточно просто — нужно передать вторым параметром true, вот так:

json_decode($json_string, true);

Вот полный код примера:

        $array = array(
            'one' => 1,
            'two' => 2,
        );

        $json = json_encode($array);

        echo $json; // {"one":1,"two":2}

        $result = json_decode($json, true);

        var_dump($result); 
        //array (size=2)
        //    'one' => int 1
        //    'two' => int 2

А подробную справку можно найти здесь: json_decode
Обязательно прочитайте — у этой функции есть еще один интересный параметр.

Была ли эта статья полезна?
Да
Нет