PHP多维数组验证

时间:2016-05-07 07:37:12

标签: php arrays validation multidimensional-array

我一直在寻找答案,但找不到答案,所以这就是我的情况。我有以下数组:

$pages = array(
   'page-one'=>range(1,9),
   'page-two'=>range(1,3),
   'page-three'=>range(5,9)
);

我想基于他的角色ID验证用户对该页面的访问权限,所以,让我们说约翰(角色id = 2)想要访问第二页。那么,我如何验证页面是否存在,并且他拥有一个有效的角色。

我尝试过像......

foreach ($pages as $page=>$roles) {
   if (given-page==$page) {
      // Then validate role id
      if (in_array(given-role,$roles)) {
         include('the-page');
      } else {
         include('403-page');
      }
   } else {
      include('404-page');
   }
}

然而它总是显示404-page。如何用该数组结构验证两个变量(页面和角色ID)?

谢谢, 卡洛斯

2 个答案:

答案 0 :(得分:0)

$pages = array(
   'page-one'=>range(1,9),
   'page-two'=>range(1,3),
   'page-three'=>range(5,9)
);
$givenpage = "page-one";
$givenrole = 2;

if(isset($pages[$givenpage])) {
    if(in_array($givenrole, $pages[$givenpage])) {
        include $givenpage;
    }
    else {
        include "403-page";
    }
}
else {
    include "404-page";
}

答案 1 :(得分:-1)

我想我找到了解决方案。它可以像...一样解决。

if (!isset($pages[given-page])) {
   include(404-page);
} else if (isset($pages[given-page]) && in_array(given-role,$pages[given-page])) {
   include(given-page);
} else {
   include(403-page);
}

尽管如此,如果您认为有更好的方法,请分享。

谢谢!