我正在尝试比较来自数据库的检索到的json数据,并且for循环中有一个嵌套的if语句。问题是'if'
语句只执行一次(当它找到数据库中的第一条记录时),然后在进一步的迭代中被跳过。
我正在使用PHP和MySQL(用于数据库)。
for ($i=0;$i<count($obj['datalist']);$i++){
$name[]=$obj['datalist'][$i]['name'];
if ($name[$i]===$row['user']){ //once it finds the first record, it goes to the 'else' part for the rest of the for loop
//if ($row['user']==$name[$i]){
echo "<p class='testclass'>".$name[$i] ." is in the database! ".$i."<br />";
} else {
echo "<p class='testclass'>". $name[$i] ." is NOT in the database! ".$i."</p>";
}
}
也可以找到代码here。
答案 0 :(得分:1)
你的代码不应该是这样的:
$name=$obj['datalist'][$i]['name'];
//if ($name[$i]===$row['user']){
if ($row['user']==$name){
您已经从该集合中获取了该名称,并且您想将其与$ row isnt进行比较?
答案 1 :(得分:1)
您在每个循环中重新创建相同的$ name。
你应该使用这一行:
$name[$i]=$obj['datalist'][$i]['name'];
或者,如果您不需要重复使用$ name集合/数组,那么您只需使用以下命令覆盖它:
$name = $obj['datalist'][$i]['name'];
并根据此变量修改if语句