PHP 查詢陣列(array)中的值
阿新 • • 發佈:2019-02-11
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