Переберите все дочерние элементы из массива, чтобы создать дочерний элемент JsTree.

У меня проблема с форматированием данных JSON для JQuery JsTree. У меня есть много детей, которые я хотел бы показать в корневой папке. Однако, когда я не могу понять, как перебрать все дочерние элементы. Следующий код печатает только 1 элемент из массива children. Я хотел бы распечатать все элементы детей.

$children = [];

foreach ($items as $item) {
$children['id'] = $item['id'];
$children['text'] = $item['title'];
}

$data = [
'id' => 1,
'text' => 'Root',
'children' => $children
];

echo json_encode($data);

Приведенный выше код выдает следующий результат:

{
"id":1,
"text":"Root",
"children":{
"id":"0B_J9f9IAYIKQczFkUERDUHpBYmc",
"text":"Complete Thesis.doc"}
}

0

Решение

Я понял это сам, назначив пустой массив с помощью ключа массива. Вот как я это сделал:

<?php
$children = [];

foreach ($items as $item => $value) {
$children[$item]['id'] = $value['id'];
$children[$item]['text'] = $value['title'];
}

$data = ['id' => 1, 'text' => 'Root',
'children' => $children
];

echo json_encode($data);

Приведенный выше код возвращает следующий результат в виде отформатированной строки JSON для JsTree:

{"id":1,"text":"Root","children":[{"id":"0B_J9f9IAYIKQemNzVzBhNDg2elE","text":"New Folder"},{"id":"0B_J9f9IAYIKQdkktWEREaHVLMUk","text":"New Folder"},{"id":"0B_J9f9IAYIKQX3pjUU5FTDBkUlE","text":"Erin VZBakker 4 thisis.pdf"},{"id":"0B_J9f9IAYIKQczFkUERDUHpBYmc","text":"Complete Thesis.doc"}]}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]