-2

谁能解释为什么以下不起作用?

我想写if is Blocked userin the arraylog.txt$user$blockedusers

$blockedusers = array("USER1", "USER2");
$user = "USER1";
foreach ($user as $blockedusers) {
    $file = 'log.txt';
    $current = file_get_contents($file);
    $current .= 'Blocked user' . "\n";
    file_put_contents($file, $current);
}

有任何想法吗?

4

1 回答 1

10

如果您只想检查特定用户是否在$blockedusers数组中,则不需要循环。为此目的有一个内置函数,建议使用它。

使用in_array()

if (in_array($user, $blockedusers)) {
    $current = file_get_contents($file);
    $current .= 'Blocked user: '.$user."\n";
    file_put_contents($file, $current);
}

或者,如果您有一组用户,并且您想检查其中是否有任何用户在阻止列表中,您可以执行以下操作:

$users = array('foo', 'bar', 'baz');
foreach ($users as $user) {
    if (in_array($user, $blockedusers)) {
        $current = file_get_contents($file);
        $current .= 'Blocked user' . "\n";
        file_put_contents($file, $current);
    }
}
于 2013-09-12T12:38:11.303 回答