В настоящее время у меня есть фрагмент кода, в котором для каждой категории он найдет подкатегории:
$categories = array_map(
function($child)
{
$child['children'] =
$this->getChildren(
$child['id'],
!empty($this->request->get['language_id']) ?
$this->request->get['language_id'] : 1
);
return $child;
}, $categories);
getChildren()
рекурсивно получит потомков одной категории:
private function getChildren($parent_id, $language_id) {
$this->load->model('official/category');
$children =
$this->model_official_category->getCategoriesByParentId(
$parent_id,
$language_id
);
// For each child, find the children.
foreach ($children as $child) {
$child['children'] = $this->getChildren(
$child['id'],
$language_id
);
}
return $children;
}
В настоящее время при использовании моей лямбда-функции в array_map()
будут извлечены только дочерние элементы подкатегории, поэтому, если каждая подкатегория имеет свою собственную подкатегорию, она не будет сохранена в своих дочерних элементах.
Как я могу показать подкатегорию с учетом имеющейся подкатегории?
Что я хотел сделать со своим кодом, так это взять родителя, получить его дочерние элементы, а затем рассматривать каждого из этих дочерних элементов как родительский и рекурсивно получать его дочерние элементы, однако мой вывод JSON не отражает этого. Только у родителя есть дети - у детей нет детей (несмотря на то, что они есть в моей базе данных).