2010-02-22 104 views
0

我对此有点困难。我想允许用户通过AJAX请求检查用户名是否可用。 AJAX请求调用我的PHP和PHP,如果用户名不可用,则返回true;如果可用,则返回false。array_push和in_array问题

我想将用户名合并到数组中(如果找到),然后使用in_array来定位匹配项。但它不是这样工作的。

$res = // database returns any username that matches - (not an array) 
    $banned = // database returns an assoc array of banned names 

    array_push($banned, strtolower($res['user'])); 

    if(!in_array(strtolower($requested), $banned)){ 
     echo 'available'; 
    } else { 
     echo 'not available'; 
    } 

这里是禁止的变量的样本数组:因为它没有在$资源变量中找到

Array 
(
    [0] => bad1 
    [1] => bad2 
    [3] => 
) 

第三键为null。

有没有更好的方法来做到这一点?我也需要将数组中的值转换为小写。

回答

1

为了增强可读性,我想这会更好看

if (isset($res['user'])) { // is this key set for this array? 

    $banned[] = strtolower($res['user']); // append the strtolower`d version 
} 
+0

部屋亚历克斯,感谢您的帮助。好的,谢谢。我将删除array_push并使用它。 – Jim 2010-02-22 23:39:43

+0

'array_push()'看起来更混乱,并且还增加了函数开销。也看到这个问题:http://stackoverflow.com/questions/559844/whats-better-to-use-in-php-array-value-or-array-pusharray-value – alex 2010-02-22 23:47:45