从多维数组制作面包屑

Make breadcrumb from multidimensional array

Array
(
   [0] => Array
       (
          [id] => 68
          [cat_name] => Business Insurance
          [cat_slug] => business-insurance
          [is_parent] => 67
          [parent] => Array
                   (
                      [0] => Array
                          (
                             [id] => 67
                             [cat_name] => Insurance
                             [cat_slug] => insurance
                             [is_parent] => 65
                             [parent] => Array
                                      (
                                         [0] => Array
                                             (
                                                [id] => 65
                                                [cat_name] => Finance and Investment
                                                [cat_slug] => finance-and-investment
                                                [is_parent] => 47
                                                [parent] => Array
                                                          (
                                                            [0] => Array
                                                                 (
                                                                   [id] => 47
                                                                [cat_name] => Business & Economy
                                                                [cat_slug] => business-economy
                                                                [is_parent] => 0
                                  )
                              )
                          )
                      )
                  )
             )
       )
)   
  
        

我需要 Codeignitor 的递归函数,它将上面的数组显示为商业与经济 -> 金融和投资 -> 保险 -> 商业保险作为面包屑。请帮忙。

没检查过,可能有用

function processArray($config) {
    $firstElement = $config[0];
    $result = '';
    if (isset($firstElement['parent'])) {
        $result .= processArray($firstElement['parent']) . ' / ';
    }
    $result .= $firstElement['cat_name']; // Probably want to wrap it in a-tag with href
    return $result;
}

更新:获取第一个元素

我会使用这样的递归循环,这将创建一个面包屑数组。

function breadcrumb_recursion($arr, $crumbs = []) {
    $arr = $arr[0];
    if (!empty($arr['parent'])) {
        $crumbs = breadcrumb_recursion($arr['parent']);
    }
    $crumbs[] = $arr['cat_name'];
    return $crumbs;
}

结果

Array
(
    [0] => Business & Economy
    [1] => Finance and Investment
    [2] => Insurance
    [3] => Business Insurance
)

现在,您可以使用 implode().

轻松地在您的页面上回应此内容
echo implode(' / ', $breadcrumb_return);

结果

Business & Economy / Finance and Investment / Insurance / Business Insurance