array_search / in_array找不到字符串

时间:2014-01-13 22:20:24

标签: php arrays search

我有以下代码

$checkarray = unserialize(file_get_contents('serialized.txt'));

var_dump($checkarray);
foreach($checkarray as $_index => $_image )
{
    echo strval($_index)." = ".var_dump($_image)."<br>";
}
var_dump(array_search('pirates_of_love_and_kingdoms.jpg',$checkarray));
var_dump(in_array('pirates_of_love_and_kingdoms.jpg',$checkarray));

可以找到'serialized.txt'的内容herehttp://textuploader.com链接,而非下载链接,如果您想使用它,则需要复制并粘贴到新文件中)

第一个var_dump输出数组然而因为我有xdebug而不是输出整个数组,我不打算修复它,它只是确认文件是导入和反序列化正确,循环输出数组中的所有内容都确认每个值都是一个字符串(感谢xdebug),最后的2 var_dumps将输出函数的结果。

当我运行我的代码时,var_dump输出都是假的,但是如果我使用浏览器搜索文本,我会发现它,所以我知道它在数组中。

我知道如果找到针,array_search返回数组中的键,而in_array如果找到针则返回true,如果找不到针,则返回false,但是当我能确认它在循环中输出并在我的serialized.txt文件中以与文件中指定的索引相同的索引输出时,我不知道怎么也找不到它。

我已经检查了基本内容,空白区域,新行,在屏幕上和文件中输出的内容,是否有人可以向我解释我做错了什么?

1 个答案:

答案 0 :(得分:1)

每行末尾的换行符都会给您带来麻烦。在trim内填写foreach

$checkarray = unserialize(file_get_contents('serialized.txt'));

var_dump($checkarray);
foreach($checkarray as $_index => $_image )
{
    $checkarray[$_index] = trim($_image);
    echo strval($_index)." = ".var_dump($_image)."<br>";
}
var_dump(array_search('pirates_of_love_and_kingdoms.jpg',$checkarray));
var_dump(in_array('pirates_of_love_and_kingdoms.jpg',$checkarray));