0

配列 (カテゴリ ツリー) を取得しました

[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;

この例の配列には 2 つのレベルがありますが、それ以上のレベルにすることもできます...アイデアや助けをください。

4

1 に答える 1

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";
}
于 2013-10-31T16:35:12.577 に答える