PHP 数组中项目的函数

PHP Function for Item in Array

我有一个从数据库结果创建的数组。它包含 "views" 的列表,这些 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 语句中从来没有 returns 任何内容。

注意到我遗漏了什么明显的东西吗?

更新: 我的数组开始于 KEYS $perms = $permissions->data->views->keys;

更新 2 这似乎已经解决了。我不得不将 return 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; }