将树类别数组转换为一行

时间:2013-10-31 15:50:28

标签: php recursion multidimensional-array

我有一个数组(类别树)

[category_name_en] => en
[category_name_ru] => ru
[id_category] => 86314
[children] => Array
    (
        [category_name_en] => en 2
        [category_name_ru] => ru 2
        [id_category] => 86296
    )

这是我从数据库获得的 - 递归

我正试图获得这样的输出

[category_en] => en > en2;
[category_ru] => ru > ru2;

在这个示例中,数组有两个级别,但它可以是更多级别...请给我一个想法或帮助。

1 个答案:

答案 0 :(得分:1)

像这样简单的东西让你开始:

function flattenChildren(array $array, $key) {
    $chain = !empty($array['children']) ? flattenChildren($array['children'], $key) : array();
    array_unshift($chain, $array[$key]);
    return $chain;
}

foreach ($categories as $category) {
    echo join(' > ', flattenChildren($category, 'category_name_en')), "\n";
}