我有以下代碼array_search/in_array無法找到字符串
$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
的輸出都是false,但是如果我使用瀏覽器搜索文本,我會發現它,所以我知道它在數組中。
我知道array_search
返回數組中的鍵,如果找到了針,而in_array
如果找到了針,則返回true,如果找不到針,則返回false,但是我不知道如何都不能找到它時,我可以確認它是在循環中輸出,並在我的serialized.txt文件中與文件中指定的索引相同。
我已經檢查了基本知識,空白處,新行,在屏幕上和文件中輸出的內容,任何人都可以向我解釋我做錯了什麼?
檢查空格,換行,大小寫等你說字符串是在你的文件 - 這些功能正在尋找它**作爲數組項**沒有別的參與在裏面。另外,使用'file()'將文本文件讀入一個數組而不是'file_get_contents()' –
@scrowler我使用'file_get_contents()',因爲它獲取它作爲一個字符串而不是數組,如果你看在我上傳的文本文件中,您會看到它是一個序列化的字符串,我在2個函數中搜索的內容與我在瀏覽器中搜索的內容以及記事本++中的內容相同 –