在PHP開發中,查詢一個字串是否在陣列中是一個很常見的操作。在這篇文章中,我們將會探討一些方法來檢查一個字串是否在PHP陣列中。
方法一:使用in_array()函數
PHP中的in_array()函數用來檢查一個值是否存在於陣列中。我們可以使用這個函數來尋找字串是否在陣列中:
$array = array('apple', 'banana', 'orange', 'grape'); if (in_array('banana', $array)) { echo 'Found'; } else { echo 'Not Found'; }
這個程式碼會輸出:Found。因為‘banana’存在於數組中。
下面我們把它改為搜尋另一個字串‘watermelon’:
$array = array('apple', 'banana', 'orange', 'grape'); if (in_array('watermelon', $array)) { echo 'Found'; } else { echo 'Not Found'; }
這個程式碼會輸出:Not Found,因為‘watermelon’不在陣列中。
方法二:使用array_search()函數
現在,我們來看看另一個方法來找出字串是否在PHP陣列中。使用array_search()函數:
$array = array('apple', 'banana', 'orange', 'grape'); if (array_search('banana', $array)) { echo 'Found'; } else { echo 'Not Found'; }
這個程式碼會輸出:Found。因為‘banana’存在於數組中。
下面我們把它改為搜尋另一個字串‘watermelon’:
$array = array('apple', 'banana', 'orange', 'grape'); if (array_search('watermelon', $array)) { echo 'Found'; } else { echo 'Not Found'; }
這個程式碼會輸出:Not Found,因為‘watermelon’不在陣列中。
方法三:使用in_array()和strtolower()函數
在以上兩種方法中,我們沒有考慮大小寫問題。所以以下的方法是忽略大小寫的:
$array = array('Apple', 'Banana', 'Orange', 'Grape'); $search_term = 'banana'; if (in_array(strtolower($search_term), array_map('strtolower', $array))) { echo 'Found'; } else { echo 'Not Found'; }
使用array_map()函數處理遍歷整個數組中的字串,使用strtolower()函數將字串轉換為小寫形式並將其儲存在新數組中。然後,我們可以使用in_array()函數來尋找指定的字串是否在新陣列中。
如果我們改為搜尋另一個字串例如‘Watermelon’:
$array = array('Apple', 'Banana', 'Orange', 'Grape'); $search_term = 'Watermelon'; if (in_array(strtolower($search_term), array_map('strtolower', $array))) { echo 'Found'; } else { echo 'Not Found'; }
這裡輸出 Not Found,因為新陣列中沒有任何字串與‘Watermelon’相符。
到這裡,我們掌握了PHP中檢查一個字串是否存在於一個陣列中的三種不同方法。從效能角度來看,in_array()函數和array_search()函數似乎更有效率,並且沒有遍歷整個陣列元素的操作。
以上是怎麼用php檢查一個字串是否在陣列中的詳細內容。更多資訊請關注PHP中文網其他相關文章!