2016-01-15 4 views
1

следующего массива принимается на стороне сервера:
PHP: преобразование массива объектов в чистый массиве

[{"id":"2","foo":"bar","children":[{"id":"4","foo":"baz","children":[{"id":"6"}]},{"id":"5"}]},{"id":"7"},{"id":"3"}] 


есть ли способ, чтобы преобразовать его в вложенный массив, как это?

[ 
    ['id' => 2, 'foo' => 'bar', 'children' =>[ 
              'id'=> 4, 'foo' => 'baz' .... 

P.S: Я узнал, что без использования какой-либо функции у меня будет желаемый формат кода на стороне сервера. возможно, это из-за отправки данных в виде почтового запроса (с использованием ajax), который преобразует данные в массив, а затем сериализует его и отправляет, а затем на стороне сервера у меня есть хороший массив, такой же, как и то, что я ищу. Я не уверен, что это ralated для php или laravel или jquery!?

Array 
(
[0] => Array 
    (
     [id] => 2 
     [children] => Array 
      (
       [0] => Array 
        (
         [id] => 4 
         [children] => Array 
          (
           [0] => Array 
            (
             [id] => 6 
            ) 

          ) 

        ) 

       [1] => Array 
        (
         [id] => 5 
        ) 

      ) 

    ) 

[1] => Array 
    (
     [id] => 7 
    ) 

[2] => Array 
    (
     [id] => 3 
    ) 

) 
+2

['json_decode'] (http://php.net/manual/en/function.json-decode.php)? – Jon

+0

обратите внимание на второй аргумент json_decode также – charlietfl

+0

Это звучит странно, но почему бы не попытаться сохранить его как строку JSON, а затем заменить '{' на '[', '}' на ']' и ':' на '=>' , и только тогда json_decode()? ;-) –

ответ

0

Чтобы получить массив в PHP, Да. Используйте json_decode().

Чтобы получить «вложенный массив, подобный этому» в JSON, No. Это не то, как должны выглядеть массивы в JSON. См. Спецификацию на json.org, это очень легко понять.

+0

Вторая часть действительно не имеет смысла с учетом ввода уже JSON – charlietfl

+0

Я знаю. Я просто хотел сделать это ясно. Можно, конечно, также попытаться просто «реструктурировать» массив, вот почему я включил это. – ArSeN

Смежные вопросы