当我使用in_array()时,PHP总是返回false,并且它是否在数组中并不重要.例如:
$list = 'test
list
example';
$list_arr = array();
$list_arr = explode("\n",$list);
if (in_array('test',$list_arr)) {
echo 'Found';
}
else {
echo 'Not Found';
}
Run Code Online (Sandbox Code Playgroud)
返回'Not Found',即使'test'是数组中的值
$list = 'test
list
example';
$list_arr = array();
$list_arr = explode("\n",$list);
if (in_array('qwerty',$list_arr)) {
echo 'Found';
}
else {
echo 'Not Found';
}
Run Code Online (Sandbox Code Playgroud)
返回"未找到",应该如此
当它应该是真的时,为什么它会返回错误?请提出任何建议.我实际使用的列表有超过10K的值,因此我在这里缩短了它.
Mat*_*lin 10
如果您正在使用这个确切的示例并在Windows PC上编码,则问题来自于Windows使用以下方式存储换行符:
\r\n
Run Code Online (Sandbox Code Playgroud)
因此,当您在\n上拆分时,只有在项目末尾保留一个不可见的\ r \n,因此不匹配.