PHP in_array

PHP in_array 用來判斷某個值是否存在陣列中,用法與 array_search 有點類似,不過 array_search 回傳的是陣列的 key 值,而 in_array 則是回傳該值是否在陣列中,所以如果只是單純的想知道該陣列是否有比對的值,就可以使用 in_array。

PHP in_array 基本語法

in_array ( 要比對的值 , 要比對的陣列 , $strict )


in_array 的用法相當簡單,只要把想要比對的值與要比對的陣列一起放到 in_array 中,如果值有在陣列中,就會回傳 true,反之當然就是回傳 false 囉!最後的 $strict 是非必要項目,可以設定為 true 或不寫,$strict 如果是 true,則 in_array 會連同該值在陣列中的 types 一起做比對,我們先來看看單純不寫 $strict 的範例比較容易了解。
<?php
$Arr = array("aaa", "bbb", "ccc");
if (in_array("aaa", $Arr)) {
 echo "aaa is in array.";
}
echo '<hr>';
if (! in_array("123", $Arr)){
 echo "123 is not in array.";
}
?>
呈現結果



範例中我們先寫了一個簡單的陣列,接著下面分別把 aaa 與 123 這兩個值放到 in_array 中去比對,可以很清楚的看到比對結果,aaa 這個值存在 $Arr 陣列中,而 123 並不在陣列中,請注意第二個 if 的條件中,in_array 前面我們有加個驚嘆號,意思是如果 123 不在陣列中,這個 if 本來是不會執行的,加入驚嘆號後剛好相反,目的只是要讓 echo 順利輸出。

接著來看看加入 $strict 的範例。
<?php
$a = array('1', 2, 3);
if (! in_array( '2', $a, true)) {
 echo "Can \t find '2'.";
}
echo '<hr>';
if (in_array( 2, $a, true)) {
 echo "Find 2.";
}
?>
呈現結果



由於這個範例加上了 $strict(就是那個 true),所以第一個 if 在比對的時候,發現 '2' 並不存在 $a 陣列中,而第二的 if 發現 2 存在 $a 陣列中,有沒有單引號的結果並不一樣,因為 types 不一樣,所以是否要加上 $strict 這個部分,就看你需不需要比對 types 囉!

其它說明:假設你要做的只是字串比對,而不是陣列比對,可以使用 preg_match 這個正規比對式。

延伸閱讀
PHP Array() 陣列函數用法
PHP array_search
PHP array_sum 統計陣列內數值的總數
PHP is_array
PHP preg_match 正規表示比對
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012