Php 数组搜索/在数组中可以';找不到字符串

Php 数组搜索/在数组中可以';找不到字符串,php,arrays,search,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_an

我有以下代码

$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));
$checkarray=unserialize(文件获取内容('serialized.txt');
变量转储($checkarray);
foreach($checkarray作为$\u索引=>$\u图像)
{
echo strval($\u index)。“=”.var\u dump($\u image)。“
”; } var_dump(数组搜索('pirates_of_love_and_kingdoms.jpg',$checkarray)); var_dump(在_数组中('pirates_of_love_and_kingdoms.jpg',$checkarray));
可以找到“serialized.txt”的内容(
http://textuploader.com
link,而不是下载链接,如果您想使用它,需要复制并粘贴到新文件中)

第一个
var_dump
输出数组,但是因为我有xdebug,所以没有输出整个数组,我不想解决这个问题,它只是确认文件已正确导入并取消序列化,循环输出数组中的所有内容,确认每个值都是字符串(感谢xdebug),最后2个
var_转储
用于输出函数的结果

当我运行代码时,
var\u dump
s输出为false,但是如果我使用浏览器搜索文本,我会找到它,这样我就知道它在数组中

我知道
array\u search
如果找到了针,则返回数组中的键,而
in\u array
如果找到针,则返回true,如果找不到针,则两者都将返回false,但是,当我可以确认它是在循环中以及序列化的.txt文件中以与文件中指定的索引相同的索引输出时,我不知道如何也找不到它


我已经检查了屏幕上和文件中输出的基本内容、空格、新行和大小写,有人能解释一下我做错了什么吗?

每行末尾的换行都会给您带来问题。在您的
foreach
内进行
trim

$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));
$checkarray=unserialize(文件获取内容('serialized.txt');
变量转储($checkarray);
foreach($checkarray作为$\u索引=>$\u图像)
{
$checkarray[$\u index]=修剪($\u图像);
echo strval($\u index)。“=”.var\u dump($\u image)。“
”; } var_dump(数组搜索('pirates_of_love_and_kingdoms.jpg',$checkarray)); var_dump(在_数组中('pirates_of_love_and_kingdoms.jpg',$checkarray));
检查空格、换行符、区分大小写等。您说字符串在您的文件中-这些函数将它作为数组项搜索,而不涉及任何其他内容。另外,使用
file()
将文本文件读入数组,而不是
file\u get\u contents()
@scrowler我使用的是
file\u get\u contents()
,因为它是作为字符串而不是数组获取的,如果你查看我上传的文本文件,你会发现它是一个序列化字符串,我在这两个函数中搜索的内容与我在浏览器和记事本++中搜索的内容完全相同谢谢,但奇怪的是,正如我所说,我使用记事本++使用扩展搜索搜索“\n”,但它没有返回任何内容,是否存在另一个不可见的换行符值?