foreach中的PHP-If语句
所以我是PHP的新手,正在尝试完成一些非常简单的事情。将文本文件导入数组,让foreach遍历该数组以查找值,如果找到,则打印该值 以下是我迄今为止所尝试的:foreach中的PHP-If语句,php,Php,所以我是PHP的新手,正在尝试完成一些非常简单的事情。将文本文件导入数组,让foreach遍历该数组以查找值,如果找到,则打印该值 以下是我迄今为止所尝试的: $testers = file('test.txt'); foreach ($testers as $test) {echo $test . "<br />";} $testers=file('test.txt'); foreach($testers作为$test){echo$test.“”;} 这很好,每行都打印出来了。
$testers = file('test.txt');
foreach ($testers as $test) {echo $test . "<br />";}
$testers=file('test.txt');
foreach($testers作为$test){echo$test.“
”;}
这很好,每行都打印出来了。完美的
然后我添加一个IF语句
$testers = file('test.txt');
foreach ($testers as $test) {if ($test){echo $test . "<br />";}}
$testers=file('test.txt');
foreach($testers作为$test){if($test){echo$test.
“;}
工作正常,似乎正在返回数据。现在,如果我尝试添加一个操作符,它就会崩溃
$testers = file('test.txt');
foreach ($testers as $test) {if ($test == "One"){echo $test . "<br />";}}
$testers=file('test.txt');
foreach($testers作为$test){if($test==“One”){echo$test.
“;}
应该说,文本文件中每行都有从“1”到“6”的数字
我还尝试:
$testers = file('test.txt');
foreach ($testers as $test) {if ($test === "One"){echo $test . "<br />";}}
$testers=file('test.txt');
foreach($testers作为$test){if($test==“One”){echo$test.
“;}
这也没有什么回报
任何洞察都会很棒!谢谢
我到底错过了什么?为什么这个if语句没有返回我要查找的值 您应该改为使用进行检查,并在此之前执行一次检查,以从$testers
数组中删除空条目
代码。。。
您的问题是因为默认情况下,每行都会包含换行符。因此,关于平等的比较将失败
您可以使用:
$testers = file('test.txt', FILE_IGNORE_NEW_LINES);
i、 e.添加标志,使PHP不会在结果数组项中包含换行符
如果您不想列出空行,则会有相应的FILE\u SKIP\u empty\u lines
标志,因此:
$testers = file('test.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
如果要比较每一行是否与另一行相等,请检查
如果要查看行是否包含字符串,请检查strpos
对于strcmp:
foreach ($testers as $test) {if (strcmp($test,"one")==0){echo $test . "<br />";}}
foreach($testers作为$test){if(strcmp($test,“one”)==0{echo$test.
“;}
对于STRPO:
foreach ($testers as $test) {if (strpos($test,"one") !==false){echo $test . "<br />";}}
foreach($testers作为$test){if(strpos($test,“one”)!==false){echo$test.
“;}
Trytrim($test)==“One”
谢谢,虽然其他建议也都是有效的,但我喜欢这个建议,因为它很简单,切中要害,并解释了发生的事情。
foreach ($testers as $test) {if (strpos($test,"one") !==false){echo $test . "<br />";}}