【发布时间】:2012-07-16 20:24:16
【问题描述】:
当我使用 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';
}
即使 'test' 是数组中的一个值,也会返回 'Not Found'
$list = 'test
list
example';
$list_arr = array();
$list_arr = explode("\n",$list);
if (in_array('qwerty',$list_arr)) {
echo 'Found';
}
else {
echo 'Not Found';
}
应该返回“未找到”
为什么它应该为真却返回假?请提出任何建议。我实际使用的列表有超过 10K 的值,因此我在这里缩短了它。
【问题讨论】:
-
您使用的是什么操作系统?在 Windows 中,行尾实际上是两个字符:\r\n,因此将其拆分为 \n 会得到 'text\r'、'list\r' 和 'example'。
-
你确定你有一个
\n而不是\r\n? -
你能
var_dump($list_arr);并发布输出吗?