从具有多个输入的Array到具有varnames PHP

时间:2016-12-16 09:30:11

标签: php arrays

我正在尝试构建一个函数来生成我的菜单栏。

到目前为止,我已完成以下任务:

使用所需信息创建一个数组:

$MENU_GEN["MENUNAME"] = array(
    'enabled'=>true,
    'parent'=>true,
    'headline'=>"Wareneingang",
    'access'=>'99,50,25',
    'activelink'=>'$linkvar',
    'buttonvalue'=>'wareneingang',
    'sub_menus'=>array()
); 

问题是我想要访问'分裂(因为每个menupoint可以有更多或更少的访问级别)。

我试图像这样分割访问权限:

$access_split = $item['access'];
$splitter = explode(",",$access_split);
$prefixed_split = preg_filter('/^/','$user_level == ',$splitter);
$buildaccess = implode("||",$prefixed_split);

效果很好。现在是我棘手的部分。我想从那里建立我的if语句,应该是这样的:

if($user_level == 99 || $user_level == 50){

但是,如果我尝试构建所有内容,if语句似乎是空白的,因为如果更改我的访问级别或将数组中的值更改为甚至不存在的内容,它只会解析所有内容,就像没有if语句一样...

我做错了什么? 有没有办法将String格式化为再次被接受为代码? (我已经阅读了关于eval()函数的内容,但我没有让它工作......)

抱歉我的英文。我不是母语:' D

1 个答案:

答案 0 :(得分:0)

当然,您可以将access值拆分为:

$MENU_GEN["MENUNAME"]['access'] = explode(',' $MENU_GEN["MENUNAME"]['access']);

然后根据您的情况使用in_array

if(in_array($user_level, $MENU_GEN["MENUNAME"]['access'])) {