我有以下代码
$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'的内容here(http://textuploader.com
链接,而非下载链接,如果您想使用它,则需要复制并粘贴到新文件中)
第一个var_dump
输出数组然而因为我有xdebug而不是输出整个数组,我不打算修复它,它只是确认文件是导入和反序列化正确,循环输出数组中的所有内容都确认每个值都是一个字符串(感谢xdebug),最后的2 var_dumps
将输出函数的结果。
当我运行我的代码时,var_dump
输出都是假的,但是如果我使用浏览器搜索文本,我会发现它,所以我知道它在数组中。
我知道如果找到针,array_search
返回数组中的键,而in_array
如果找到针则返回true,如果找不到针,则返回false,但是当我能确认它在循环中输出并在我的serialized.txt文件中以与文件中指定的索引相同的索引输出时,我不知道怎么也找不到它。
我已经检查了基本内容,空白区域,新行,在屏幕上和文件中输出的内容,是否有人可以向我解释我做错了什么?
答案 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));