2017-01-29 2 views
1

Вот мой код:Как создать дерево вложенных массивов во вложенное дерево объектов?

$adjacencies = array ( "0" => array( "name1" => "pear", 
             "name2" => "jack", 
             "data" => array() ), 
         "1" => array( "name1" => "pear", 
             "name2" => "john", 
             "data" => array() ) 
        ); 

$final_array['adjacencies'] = $adjacencies; 
echo "<pre>"; 
print_r(json_encode($final_array)); 

И это результат кода выше:

enter image description here

Как вы видите значение data «s является [], в то время как я хочу это {} вместо этого. Как я могу это сделать?

+0

Возможный дубликат (http://stackoverflow.com/questions/8595627/best -way-to-create-a-empty-object-in-json-with-php) – Clive

ответ

2

Хотя я не уверен, что причина вашего вопроса, вместо установки ключа data как массив, просто определить его как новый объект.

$adjacencies = array ( "0" => array( "name1" => "pear", 
             "name2" => "jack", 
             "data" => new stdClass() ), 
         "1" => array( "name1" => "pear", 
             "name2" => "john", 
             "data" => new stdClass() ) 
        ); 

$final_array['adjacencies'] = $adjacencies; 
echo "<pre>"; 
print_r(json_encode($final_array)); 

Источник: [? Лучший способ создать пустой объект в JSON с PHP]

http://php.net/manual/en/language.types.object.php#107071

+0

спасибо upvote – stack

1

Вы можете использовать ArrayObject, если он вам подходит (или stdClass).

PHP Manual for ArrayObject

Например:

php > echo json_encode([[],[]]); 
[[],[]] 
php > echo json_encode([ new ArrayObject(), new ArrayObject()]); 
[{},{}] 
+1

спасибо upvote – stack

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