从PHP中的多维数组中删除数组

时间:2015-10-06 10:34:36

标签: php arrays multidimensional-array slice

我在后端构建菜单,由数组和子数组填充。 结构在config.php ..

$primary_nav = array(
   array(
        'name'  => 'Μέλη',
        'url'   => 'member_list.php',
        'icon'  => 'fa fa-users',
        'access'=> 0
    ),array(
        'name'  => 'Ημερίδες',
        'url'   => ($usr['access_level'] == 1) ? 'imerides_list.php':'javascript:void(0)',
        'icon'  => 'fa fa-bullhorn',
        'access'=> 1
    )
);

在Class Users上,它检索了访问级别,我添加了

if($row['access_level'] != 1){
    unset($primary_nav[1]);
}

我该怎么做,if access level == 1,删除数组parent

我尝试unset($primary_nav[1])array_slice,但他们无法正常工作。

3 个答案:

答案 0 :(得分:1)

对不起别人,我刚才注意到,我说的是,Class Users,它是Class Users,用户是一个公共函数,没有传入$ primary_nav,这就是为什么它没有看到数组来取消它...

答案 1 :(得分:0)

您可以执行以下操作:

$primary_nav = array(
   array(
        'name'  => 'Μέλη',
        'url'   => 'member_list.php',
        'icon'  => 'fa fa-users',
        'access'=> 0
    ),array(
        'name'  => 'Ημερίδες',
        'url'   => 'test',
        'icon'  => 'fa fa-bullhorn',
        'access'=> 1
    )
);

foreach($primary_nav as $index=>$obj){
    if($obj['access']==1){
        unset($primary_nav[$index]);
    }
}

print_r($primary_nav);

答案 2 :(得分:0)

Try It ,May Help You .
$primary_nav = array(
   array(
        'name'  => 'Sourabh',
        'url'   => 'member_list.php',
        'icon'  => 'fa fa-users',
        'access'=> 0
    ),array(
        'name'  => 'Nigam',
        'url'   => ($usr['access_level'] == 1) ? 'imerides_list.php':'javascript:void(0)',
        'icon'  => 'fa fa-bullhorn',
        'access'=> 1
    )
);
foreach ($primary_nav as $key=>$primary) {
    foreach ($primary as $vkey=>$value) {
        if($vkey=='access' AND $value==1){
            unset($primary_nav[$key]);
        }
    }
}
echo '<pre>';
print_r($primary_nav);