Создать вложенный список из массива PHP для поля выбора раскрывающегося списка.Php

Кемеровские программисты php общаются здесь
Anonymous
Создать вложенный список из массива PHP для поля выбора раскрывающегося списка.

Сообщение Anonymous »

Я борюсь с массивом, который хочу превратить во вложенный

Мне нужно:


Top1
Top2
Top3
- - Top3.1
- - Top3.2
- - - - Top3.2.1
Top4
Top5
- - Top5.1
- - Top5.2


Я не могу работать с optgroup, потому что все можно выбрать. Насколько я знаю, вы не можете выбирать метки групп опций.

Мой массив выглядит так:

[44] => Array
(
[id] => 1
[name] => Test
[slug] => test
[parent] => 0
)

[45] => Array
(
[id] => 2
[name] => Test-Sub
[slug] => test-sub
[parent] => 1
)

[46] => Array
(
[id] => 3
[name] => Test-Sub-Sub
[slug] => test-sub-sub
[parent] => 2
)


У меня такое чувство, будто я перепробовал десятки вариантов, но не могу правильно построить форму выбора.

Это была моя последняя попытка:

function toDropdown($arr)
{
foreach ($arr as $row) {
$cat[$row['id']] = $row['name'];
if ($row['parent'] != 0) {
$cat[$row['id']] = '--' . $row['name'];
}
}
return $cat;
}


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

Я постараюсь продолжить, но если кто-то может помочь, я ценю любую помощь!



РЕДАКТИРОВАНИЕ: данные PHP



Моя функция для получения всех категорий из БД:

function get_categories($parent = 'all')
{
$this->db->select('categories.id, categories.name, categories.slug, categories.parent');
$this->db->from('categories');

if ($query = $this->db->get())
{
return $query->result_array();
}

return FALSE;
}


Мой view.php, куда я вывожу все данные:

$query = $this->datei_model->get_categories('all');

foreach ($query as $row)
{
$parents[] = $row;
}

$tree = buildTree($parents);

print("\n");
printTree($tree);
print("");


Подробнее здесь: https://stackoverflow.com/questions/146 ... lect-field

Вернуться в «Php»