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

在PHP之中當我們要對一個陣列(Array)搜尋是否有某個值(Value)存在時,我們會使用上的函數通常會是 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

 

參考資訊:
https://www.php.net/manual/en/function.in-array.php
https://www.php.net/manual/en/function.array-search.php

更多 PHP 相關文章 列表:https://richarlin.tw/blog/php/

Facebook 留言回應

一則迴響

迴響目前關閉。