1. 程式人生 > >PHP 查詢陣列(array)中的值

PHP 查詢陣列(array)中的值

in_array 檢查陣列中是否存在某個值

bool in_array($mixed $needle,array $haystack[,bool$strict = false]);

在haystack中搜索needle,如果沒有設定strict則使用寬鬆的比較,成功返回true

$smallPrimes = array(2,3,5,7,11,12,13,17,19,29);
$var = 19;
if(in_array($var,$smallPrimes)){
    echo "{$var} is a small prime munber"."<br>";
}
//19
is a small prime munber $var1 = "19 bridge rd,richmond"; //嚴格檢查型別,不輸出資訊 if(in_array($var1,$smallPrimes,true)){ echo "{$var1} is a small prime munber"."<br>"; } //不檢查型別 if(in_array($var1,$smallPrimes)){ echo "{$var1} is a prime munber"."<br>"; } //輸出19 is a small prime munber

array_search 在陣列中搜索給定的值,如果成功則返回相應的鍵名

mixed array_search(mixed$needle, array$haystack [,bool$strict = false]);

array_search()的運作方式與in_array()基本相同,只是與needle相對應的鍵名也會被返回,不只是返回布林值true

$measure = array(
    'inch' => 1,
    'foot' => 12,
    'yard' => 36
);
var_dump(array_search(12,$measure));
//輸出 string(4) "foot" 

$units = array
('inch','centimeter','chain','furlong'); print array_search('inch',$units); //輸出0

在使用array_search函式時,成功則返回符合條件的值,失敗時返回false表示事情沒有辦成功。如果返回值被當作邏輯判斷使用,例如用在其他表示式或邏輯判斷引數時,原本合格的結果可能會被轉換成false
如果函式的返回值是0、0.0、空字串或者空陣列,而且有需要布林值,PHP會自動把結果型別轉換為false

//使用恆等運算子===才是檢查函式array_search()返回結果的正確方式
$index = array_search('inch',$units);
if($index === false){
    echo "unknow unit:inch";
}else{
    echo "index = {$index}";
}
//輸出:index = 0