Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将树类别数组转换为一行_Php_Recursion_Multidimensional Array - Fatal编程技术网

Php 将树类别数组转换为一行

Php 将树类别数组转换为一行,php,recursion,multidimensional-array,Php,Recursion,Multidimensional Array,我有一个数组(类别树) 这是我从数据库递归中得到的 我正试图得到这样的结果 [category_en] => en > en2; [category_ru] => ru > ru2; 在此示例中,数组有两个级别,但可以是更多级别。。。请给我一个想法或帮助。像这样简单的事情让你开始: function flattenChildren(array $array, $key) { $chain = !empty($array['children']) ? flatte

我有一个数组(类别树)

这是我从数据库递归中得到的

我正试图得到这样的结果

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

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

像这样简单的事情让你开始:

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";
}

en>en2
代表什么?例如,如果
en=1
en2=2
是否希望
[category\u en]=>false
?简单文本。我只想做一个输出“文本>文本”的函数
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";
}