我使用數組來允許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讓我知道如何去做 –