簡體   English   中英

array_search / in_array找不到字符串

[英]array_search/in_array can't find string

我有以下代碼

$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”的內容( http://textuploader.com鏈接,而不是下載鏈接,如果要使用它,則需要復制並粘貼到新文件中)

第一個var_dump輸出數組,但是因為我有xdebug而不是輸出整個數組,所以我不想解決這個問題,它只是確認文件已導入並正確反序列化,循環輸出數組中的所有內容,從而確認每個value是一個字符串(由於xdebug),最后2個var_dumps將輸出函數的結果。

當我運行我的代碼時,兩個var_dump的輸出都為false,但是,如果我使用瀏覽器搜索文本,我會找到它,因此我知道它在數組中。

我知道array_search如果找到了針頭則返回數組中的鍵,而in_array如果找到針頭則返回true,並且如果找不到針頭都將返回false,但是我不知道怎么回事。可以確認它在循環中以及在我的serialized.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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM