函数仅返回1个数组结果

红色病毒

我已经尝试了很长时间了。下面的函数仅返回1个结果,而应返回3个结果。

我已经检查了数据库,数据库在循环罚款中返回结果,这意味着数据库部分正常,它在函数中出现错误的地方。

//function that generates the URI from the database
function generate_uri( $menu_id = 0, $array = '' ){
    global $db;
    $array = array();
    if( !empty($menu_id) ){
        $db->where('menu_id', $menu_id);
        $menu = $db->ObjectBuilder()->getOne('menu');
        $menu_parent = $menu->menu_parent;
        $menu_slug = $menu->menu_slug;
        $array[] = $menu_slug;
        generate_uri($menu_parent, $array);
    }
    return $array;
}

//Calling the function with a parameter of 3
var_dump(generate_uri(3));

输出

array(1) { [0]=> string(15) "photo-gallery-1" }

应该退货

 array(1) { [0]=> string(15) "photo-gallery-1" [1]=> string(12) "photo-gallery" [2]=> string(9) "resources"}
塞缪尔

每次调用该函数时,您都将其设置为$array空:$array = array();另一个问题是您没有在if语句中获得该函数的返回。更改此行:

generate_uri($menu_parent, $array);

对此:

$array = generate_uri($menu_parent, $array);

因此,该函数应如下所示:

function generate_uri($menu_id = 0, $array = '') {
  global $db;

  if (!empty($menu_id)) {
    $db->where('menu_id', $menu_id);
    $menu = $db->ObjectBuilder()->getOne('menu');
    $menu_parent = $menu->menu_parent;
    $menu_slug = $menu->menu_slug;
    $array[] = $menu_slug;
    $array = generate_uri($menu_parent, $array);
  }

  return $array;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章