HOWTO · PHP
在 PHP 中檢查陣列是否包含某值
本教程演示如何使用 PHP 中的內建函式檢查陣列是否包含特定值。
本頁內容
PHP 有幾種方法可以檢查陣列是否包含特定值。最方便的方法是使用內建函式 in_array()。
in_array() 檢查陣列是否包含給定值。in_array() 的返回型別是布林值。
in_array() 不會在陣列中查詢子字串;該值應與陣列中的值匹配。還有其他方法可以檢查陣列是否包含子字串。
本教程探討了檢查陣列是否包含我們正在尋找的值的不同方法。
在 PHP 中使用 in_array() 來檢查陣列是否包含某值
PHP in_array() 接受兩個強制引數和一個可選引數,必需引數是值 $value 和陣列 $array,如果布林值設定為 true,則可選引數是布林值 $mode in_array() 將尋找相同型別的資料。
例子:
<?php
$values = array("demo1", "demo2",10);
if (in_array("10", $values)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
if (in_array("10",$values, TRUE)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
if (in_array(10,$values)){
echo "Array contains the value<br>";
}
else{
echo "Array doesn't contains the value<br>";
}
?>
上面的程式碼檢查給定陣列中是否存在值 10。第三個預設引數為 false,如果我們設定為 true,它也會尋找相同型別的值。
輸出:
Array contains the value
Array doesn't contains the value
Array contains the value
PHP in_array() 與所有 PHP4 及以上版本相容。
使用 foreach 迴圈檢查字串是否包含 PHP 中陣列中的值
foreach 迴圈和 strpos() 函式可以一起使用來檢查字串是否包含陣列中的值。
例子:
<?php
$values_array = array('John', 'Michelle', 'Shawn');
$demo_str = 'my name is Shawn';
foreach ($values_array as $val) {
if (strpos($demo_str, $val) !== FALSE) {
echo "The string contains a value from the array";
return true;
}
}
echo "The string doesn't contain a value from the array";
return false;
?>
strpos() 檢查字串是否包含子字串,此程式碼將檢查字串是否包含給定陣列中的值。
輸出:
The string contains a value from the array
PHP strpos() 與所有 PHP4 及以上版本相容。
使用 strpos() 和 json_encode() 檢查字串是否包含 PHP 陣列中的值
json_encode() 是一個內建的 PHP 函式,用於將陣列轉換為 JSON 物件,簡單來說就是轉換成字串。
例子:
$values_array = ["John is 25 years old", "Shawn", "Michelle"];
if (strpos(json_encode($values_array),"John") !== false) {
echo "Array contains the Name";
}
else{
echo "Array doesn't contains the Name";
}
上面的程式碼將陣列轉換為字串並檢查它是否包含子字串。
輸出:
Array contains the Name
PHP jason_encode() 相容所有 PHP5 及以上版本。