Создать вложенный список из массива 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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