数组中项的PHP函数

时间:2015-02-02 00:57:48

标签: php arrays loops

我有一个从数据库结果创建的数组。它包含基于权限在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语句中返回任何内容。

请注意我遗漏的任何明显事实?

更新:我的数组从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;
}

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你的数组是否完全按照你所显示的方式传递,但如果是,那么试试这个:

 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; }