Как преобразовать JSON строку в массив на PHP?

Пользователь

от jorge , в категории: PHP , 3 года назад

Как преобразовать JSON строку в массив на PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от roma , 3 года назад

@jorge На самом деле все довольно таки просто и Вы можете использовать стандартную json_decode функцию в PHP для преобразования JSON строки в массив на PHP, небольшой, но понятный примерчик:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php

$string = '{"data":"пользователь","user":{"id":3,"name":"Коля"}}';

//Array
//(
//    [data] => пользователь
//    [user] => Array
//(
//    [id] => 3
//            [name] => Коля
//        )
//)
print_r(json_decode($string, true));


Пользователь

от shirley.vonrueden , 2 года назад

@jorge Вы можете использовать функцию json_decode для преобразования JSON строки в массив в PHP. Она принимает два аргумента: строку JSON и булевое значение, указывающее, нужно ли вернуть результат в виде ассоциативного массива (т. е. с использованием строк в качестве ключей).


Например, чтобы преобразовать JSON строку в ассоциативный массив, вы можете использовать следующий код:

1
2
3
4
5
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

$arr = json_decode($json, true);

print_r($arr);


Это выведет следующее:

1
2
3
4
5
6
7
8
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)


Если вы хотите получить обычный (неассоциативный) массив, вы можете передать false в качестве второго аргумента:

1
2
3
4
5
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

$arr = json_decode($json, false);

print_r($arr);


Это выведет следующее:

1
2
3
4
5
6
7
8
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)