在 PHP 中,有許多方法可以用來判斷字串是否在一個陣列內。在實際編程中,這種需求非常常見。以下介紹幾種常見的判斷方式:
PHP 中有內建的函數叫做in_array,其語法為:
#bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
needle 參數是要尋找的元素,haystack 參數是要搜尋的陣列。如果找到 needle 則回傳 TRUE,否則回傳 FALSE。 strict 參數如果設定為 TRUE,in_array 函數會同時檢查 needle 的型別和值是否相等。
下面是一個例子:
<?php $cars = array("Volvo", "BMW", "Toyota"); if (in_array("BMW", $cars)) { echo "Found BMW!"; } else{ echo "BMW not found!"; } ?>
輸出結果是: Found BMW!
PHP 中還有一個內建的函數叫做array_search,其語法為:
mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
該函數和in_array 函數類似,但不同的是它傳回該元素在數組中的下標。如果數組中不存在該元素,則傳回 FALSE。以下是一個範例:
<?php $cars = array("Volvo", "BMW", "Toyota"); $pos = array_search("BMW", $cars); if ($pos !== false) { echo "Found BMW at index " . $pos; } else{ echo "BMW not found!"; } ?>
輸出結果是: Found BMW at index 1
#在使用in_array和array_search 函數時,有幾個需要注意的事項:
1)如果要檢查一個字串在數組中是否存在,需要保證數組中的元素都是字串類型。否則,需要使用 strict 參數,將其設為 TRUE。
2)in_array 和 array_search 函數是區分大小寫的,如果要忽略大小寫,可以使用 array_map 函數將數組中的所有元素都轉為小寫或大寫後再進行搜尋。
3)如果要判斷字串是否不在陣列內,可以使用 !in_array 或 array_search === false。
總結:
判斷字串是否在陣列內是 PHP 程式中的常見需求,在 PHP 中可以使用 in_array 和 array_search 函數進行快速的判斷。在使用這兩個函數時,需要注意參數的類型和大小寫問題。
以上是php怎麼判斷字串是否在陣列內的詳細內容。更多資訊請關注PHP中文網其他相關文章!