Как мы можем сделать одномерный массив многомерным иерархическим? - PullRequest
0 голосов
/ 27 мая 2010

У меня есть один массив иерархических категорий. Индекс массива имеет вид category_id, подобный ::

[8846] => Array
    (
        [category_id] => 8846
        [title] => Tsting two
        [description] => Tsting two
        [subtype] => categories
        [type] => object
        [level] => 2
        [parent_category] => 8841
        [tags] => new
        [name] => Tsting two
    )

у каждого значения есть значение parent_category, у меня около 500 элементов в массиве, что является лучшим способом сделать это.

Процесс, за которым я следовал:

массив категорий krsort, так что все дочерние категории находятся в начале, затем

function makeHierarchical() {
  foreach($this->categories as $guid => $category) {
    if($category['level'] != 1)
    $this->multilevel_categories[$category['parent_category']][$guid] = $category;
}

}

но это не работает, оно делает это только для первого уровня.

Может кто-нибудь указать мне на ошибку.

1 Ответ

1 голос
/ 27 мая 2010

Возможно, вы сможете использовать ответ, который я опубликовал вчера, на похожий вопрос:

Преобразовать серию родительско-дочерних отношений в иерархическое дерево?

По сути, это то же самое, у вас просто есть больше полей в ваших массивах. По сути, вам нужно рекурсивно обойти массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...