[英]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.