我有一个包含多行文字的文本文件,例如:
JOHN
MIKE
BEN
JAMES
PETE
我将这些内容读入一个数组,每行文本都放在数组的单独元素中。
然后我测试了数组的每个元素,找到一个短语,说'BEN'
即:
for( $a = 0; $a < 5; $a++ )
{
if ($contents[$a] == "BEN")
{
echo "$contents[$a]";
}
}
但是这不能识别'BEN'
但如果我正在寻找一个数字而不是一个单词,请来:
JOHN
MIKE
10
JAMES
PETE
或来自......
5
10
15
20
25
并使用相同的代码来查找数字,例如:说'10'
if ($contents[$a] == 10)
{
echo "$contents[$a]";
}
然后这个工作正常,为什么呢?
也...
如果单个文本行已经在数组中,只有当它们从文本文件中读取时,我才会遇到问题......
$contents[0] = "JOHN";
$contents[1] = "MIKE";
$contents[2] = "BEN";
$contents[3] = "JAME";
$contents[4] = "PETE";
答案 0 :(得分:4)
我假设您从文本文件中读取的字符串包含每行的尾部行尾字符,这就是您找不到BEN
的原因(因为该字符串不包括尾部的尾部 - 线字符)。使用trim
函数删除字符串中的尾随空格,然后再将它们与字符串进行比较。
答案 1 :(得分:0)
尝试使用array_search()
if ($index = array_search('BEN', $contents) {
echo $contents[$index];
}
答案 2 :(得分:0)
可能是因为当您从文件中读取行时,您还会在字符串末尾添加换行符(\n
)。使用rtrim()
将其剥离。
答案 3 :(得分:0)
您还应该查看strcmp()
以比较PHP中的字符串。