數組搜尋的時候怎麼樣才能不區分大小寫呢?
為什麼下面2個都搜不到啊,我看了手冊說加個false可以的,為什麼還不行?
PHP code
------解決方案--------------------
如果 needle 是字串,則比較是區分大小寫。
如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同。
------解決方案--------------------
in_array
可選。如果設定該參數為 true,則檢查搜尋的資料與數組的值的類型是否相同。
值的類型是否相同 不是區分大小寫
array_search
如果第三個參數 strict 被指定為 true,則只有在資料類型和值都一致時才返回相應元素的鍵名。
也是類型和值,並沒有說到區分大小寫事情.
按照你的需求
1.遍曆 使用字串比較函數
2.正則
3.全部轉換成小寫後比較
....
------解決方案--------------------
第三個參數是判斷類型的,也就是用===,而不是==。。
封個函數遍曆一下行了.
------解決方案--------------------
麻煩你自己看php.net,這種基礎問題你將來遇見成百上千個,你都來問嗎
------解決方案--------------------
探討
引用:
如果 needle 是字串,則比較是區分大小寫。
如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的類型是否和 haystack 中的相同。
我想問下in_array函數在什麼情況下不區分大小寫?
我換成數組還是區分大小寫。
$dr=array('cc','Dd','Ee');
$vr=arr……
------解決方案--------------------
自己寫一個就是了
PHP code
$dr = array('cc','Dd','Ee');if(in_iarray("dd",$dr,false)){ echo "aa";}function in_iarray($needle, $haystack, $strict=false) { if(! is_string($needle)) return in_array($needle, $haystack, $strict); return in_array(strtolower($needle), array_map('strtolower', $haystack));}