我是PHP的新手。我正在写一个“测验”php表单,其中第一个目标是要求用户输入有效的“用户帐户”名称。我已经有了用户帐户列表,并创建了一个名为$ users的数组。我想我需要将验证php部分放在表单上方。我已声明$ users数组及其下方,以:
开头if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["uName"])) {
$uNameErr = "User name is required";
}
else {
....do something here
)
}
我不确定是否应该使用foreach,for循环或对数组进行计数,并将发布的uName(用户名)与$ users数组的每个元素的值进行比较。我无法使用任何这些方法生成正确的echo语句(作为测试)。我试过的最后一次是:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["uName"])) {
$uNameErr = "User name is required";
}
else {
foreach($users as $value){
if ($value ===($_POST["uName"])){
echo "needle is in the array";
}
else {
echo "needle is not in the array";
}
}
对此非常欢迎!
答案 0 :(得分:2)
您可以使用in_array。这可以轻松替换你的foreach循环。我发现当我需要对每个值进行操作时,我只使用foreach。
在这种情况下,您可以
if (in_array($_POST['uName'], $users))
echo 'they are in the array';
else echo 'they are not in the array';
另外,你可以替换
if ($_SERVER["REQUEST_METHOD"] == "POST") {
与
if (isset($_POST["uName"]){