我使用数组来允许IP地址谁可以访问,但得到错误的结果时,查询它与数据库。PHP in_array结果不符合预期的IP地址允许的情况下
while($dProfile = oci_fetch_array($qProfile))
{
$allowedIP[] = array($dProfile['ALLOWED_IP_ADDRESS']);
}
if(in_array($_SERVER['REMOTE_ADDR'], $allowedIP))
{
$ip = 1;
}
else
{
$ip = 0;
}
echo $ip;
即使我的IP地址(192.168.183.28)包括在列表中,结果始终为0。
当我print_r($allowedIP)
结果是:
Array ([0] => Array ([0] => 192.168.183.205, 192.168.183.28) [1] => Array ([0] => 192.168.184.20, 192.168.184.15))
应该得到结果1,因为我的IP地址在数组列表中。
有没有什么窍门如何做到这一点?
你必须含有逗号分隔的字符串数组的数组。 'in_array'不会在数组内的字符串中找到字符串。 – deceze
你应该首先弄平你的阵列,看看https://www.cowburn.info/2012/03/17/flattening-a-multidimensional-array-in-php/ – meta
@deceze让我知道如何去做 –