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 及以上版本。