我想打印关联数组值

时间:2019-10-17 17:43:50

标签: php arrays associative-array

我正在做功课,包括对php上的用户名和密码进行基本验证。我有一个一维的关联数组。当条件为真时,我可以打印该值,但是我不能仅打印一个“ else”,因为“ if”在foreach中

php的内容:

SELECT u2.fkPropertyID, u2.pkUnitId, u2.UnitCode, 
       u2.fkUnitViewID,u2.fkFloorPlanID, u2.fkCalendarTypeID
FROM dbo.tblUnit                u 
left join dbo.tblUnitGroup ug  ON ug.fkUnitLogicalID = u.pkUnitID
left JOIN dbo.tblUnit u2  on ((u2.fkUnitGroupID = u.pkUnitID and 
    u.ynPhyUnit = 0)                                             
    or
    (u2.pkUnitID = u.pkUnitID and u2.ynPhyUnit =1))
    or 
    (u2.pkUnitId = ug.fkUnitPhisicallID and u2.ynPhyUnit = 1)
where u.pkUnitId = 3806

2 个答案:

答案 0 :(得分:1)

此答案专门说明了如何检查“任何”真值。在检查单个匹配索引并以此索引的情况下,Nigel Ren's answer更实用。


使用一个标志检查是否有任何匹配,如果foreach之后没有匹配,则拒绝:

$user = $_POST['user'];
$pass = $_POST['pass'];
$success = False;

foreach ($login as $clave => $valor) 
{
    if ($user == $clave && $pass == $valor) {
        $success = True;
        echo "Hola " . $user . ", bienvenido a la aplicación";
    }
}

if (!$success) {
    echo "Usuario y/o contraseña incorrectos";  
}

答案 1 :(得分:1)

根本不需要循环,您所要做的就是检查是否存在带有用户名的数组条目(使用isset()),并且该条目具有相同的密码... < / p>

$user = $_POST['user'];
$pass = $_POST['pass'];
if (isset($login[$user]) && $pass == $login[$user]) {
    echo "Hola " . $user . ", bienvenido a la aplicación";
}
else    {
    echo "Usuario y/o contraseña incorrectos";
}
相关问题