[PHP] in_array 與 array_search 在陣列(Array)中尋找值是否存在

當我們必須要在一個陣列(Array)中要搜尋某個值是否為存在時,大多數情況主要會用這兩種方法來取得結果

in_array();
array_search();

而他們兩個的差異主要是在於回傳值的不同!

in_array(); 主要的功能在於查詢是否存在,若存在則回傳TRUE,若是不存在則回傳FLASE,它單純是一個用來判斷條件是否純在陣列的功能,而且使用的方法也相當的簡單。

array_search(); 主要的功能除了查詢是否存在外,它會回傳搜尋到的KEY值,意味著你能夠利用這個KEY值直接套用到你的程式中,可以直接使用這個搜尋到的變數,它的使用方法也相當的簡單。

而該在什麼時候使用哪一種指令,主要取決於設計者的經驗以及當時的程式需求,下方會進行基本的範例介紹,希望能夠給看官們一點點概念。


in_array(要搜尋的值,被搜尋的陣列);

☆in_array的回傳值是布林值,也就是TRUE或是FALSE,因此可以直接丟進判斷式作為使用。

範例:

<?php
$data = array("FaceBook", "Google", "Yahoo");

if(in_array("FaceBook",$data)){
    echo "找到";
} else {
    echo "沒找到";
}
?>

輸出結果:

找到

array_search(要搜尋的值,被搜尋的陣列);

☆基本上array_search與in_array的使用結構相同,但差別在於它的回傳值為目標的key值,當陣列中沒有可以滿足條件的答案時,則不回傳資料。

範例:

 <?php
$data = array("FaceBook", "Google", "Yahoo");

$key = array_search("Google",$data);
echo "Key值為:".$key;
?>

輸出結果:

 Key值為:1

進階用法:

<?php
$data_1 = array("FaceBook", "Google", "Yahoo");
$data_2 = array("http://facebook.com", "http://google.com", "http://yahhoo.com");

$key = array_search("FaceBook",$data_1);
echo "網址:".$data_2[$key];

?>

輸出結果:

 網址:http://facebook.com

 

發表迴響