我正在使用此代码检查数组中是否存在其中一个值:
<?php
if (in_array($_SESSION['bedrijf'], array(
"torza",
"thure",
"mb"
)) && in_array($_SESSION['user_type'], array(
"beheerder",
"administratie",
"kantoor",
"werkplaats"
))) {
echo 'execute script';
}
?>
但是现在脚本没有执行或者给出了任何错误。
print_r($_SESSION['bedrijf'])
提供Array ( [0] => mb [1] => thure [2] => torza )
print_r($_SESSION['user_type'])
提供beheerder
答案 0 :(得分:0)
您不会在大海捞针中找到针阵列作为子阵列。如果$_SESSION['bedrijf']
始终是数组,则检查交集(至少1个匹配):
if (array_intersect($_SESSION['bedrijf'],
array("torza","thure","mb")) &&
in_array($_SESSION['user_type'],
array("beheerder","administratie","kantoor","werkplaats")))
{
echo 'execute script';
}
答案 1 :(得分:0)
由于您的$_SESSION['bedrijf']
包含数组,因此可以使用以下代码获取结果。
<?php
$allowScript = false;
if(is_array($_SESSION['bedrijf']))
{
foreach($_SESSION['bedrijf'] as $bedrijf)
{
if (in_array($bedrijf, array("torza","thure","mb")) && in_array($_SESSION['user_type'], array("beheerder", "administratie", "kantoor","werkplaats")
{
$allowScript = true;
// Execute Script!
}
}
}
if($allowScript === TRUE)
{
// Execute script
}
else
{
// Not allowed
}
?>