数组中项的PHP函数

数组中项的PHP函数,php,arrays,loops,Php,Arrays,Loops,我有一个从数据库结果创建的数组。它包含基于权限在UI上允许的“视图”列表 我正在尝试创建一个可以传递视图的函数,它会告诉我它是否存在于数组中 我的阵列: [views] => SimpleXMLElement Object ( [keys] => Array ( [0] => SimpleXMLElement Object

我有一个从数据库结果创建的数组。它包含基于权限在UI上允许的“视图”列表

我正在尝试创建一个可以传递视图的函数,它会告诉我它是否存在于数组中

我的阵列:

[views] => SimpleXMLElement Object
            (
                [keys] => Array
                    (
                        [0] => SimpleXMLElement Object
                            (
                                [view] => viewOriginalFeedback
                            )

                        [1] => SimpleXMLElement Object
                            (
                                [view] => viewTarget
                            )

                    )

            )

    )
我的PHP函数:

function getViews($val) {

    // Define as global
    global $perms;

    // Loop over array
    foreach ($perms as $item){
        if (isset($item['view']) && $item['view'] == $val){
            return true;
        }else{
            return false;
        }
    }
}

echo getViews('viewTarget');
它从不在我的echo语句中返回任何内容

注意到我遗漏了什么吗

更新:我的数组从
键开始
$perms=$permissions->data->views->KEYS

更新2 这似乎已经解决了它。我必须移动
返回false在IF语句之外,因此不会被真值重写

function getViews($val) {

    // Define as global
    global $perms;

    // Loop over array
    foreach ($perms as $item){
        if (isset($item->view) && $item->view == $val){
            return true;
        }

    }
    return false;
}

不清楚您的数组是否完全按照显示的方式传递,但如果是,请尝试以下操作:

 function getViews($val) {

     // Define as global
     global $perms;

     // Loop over array
     foreach ($perms['keys'] as $item){
         if (isset($item['view']) && $item['view'] == $val){
             return true;
         }

     }
     return false; }

既然它是一个对象,你有没有尝试过->
如果(isset($item->view)&&&$item->view=$val){
?这似乎对我不起作用