php怎麼檢測陣列中是否包含某字串

2022-07-22 22:00:37

兩種檢測方法:1、使用in_array函數檢測,可以查詢陣列中是否包含指定型別的值,語法「in_array('字串',陣列,true)」,如果返回值為TRUE則包含,反之則不包含。2、使用array_search()函數檢測,可以查詢陣列中是否包含指定型別的值,語法「array_search('字串',陣列,true)」,如果返回對應鍵名則包含,如果返回FALSE則不包含。

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php檢測陣列中是否包含某字串有兩種方法:

  • 使用in_array函數檢測

  • 使用array_search()函數檢測

方法1:使用in_array函數檢測

in_array() 函數可以查詢陣列中是否包含某個值,如果存在則返回 TRUE,不存在則返回 FALSE。

in_array($needle, $array[, $strict = FALSE])

引數說明如下:

  • $needle:為待搜尋的值,如果 $needle 是字串,則在比較時區分大小寫;

  • $array:為待搜尋的陣列;

  • $strict:為可選引數,預設為 FALSE。

    • 如果 $strict 為空或者 FALSE,則 in_array() 函數只會檢查 $needle 的值是否和 $array 中的值相等;
    • 如果 $strict 的值為 TRUE,in_array() 函數除了會檢查 $needle 和 $array 中的值之外,還會比較它們的型別是否相等。

想要使用in_array函數檢測陣列中是否包含某字串,只需要將第一個引數設定為指定字串,第三個引數設定為TRUE(用於確保元素值和搜尋值的型別一致)

<?php
header("Content-type:text/html;charset=utf-8");
$array = array(
    'name'  =>'PHP中文網',
    'url'   =>'https://www.php.cn/',
    'title' =>'PHP教學',
    'pid'   =>1234
);
var_dump($array);
if(in_array('PHP教學', $array, true)){
    echo '陣列中包含字串「PHP教學」<br><br>';
}else{
    echo '陣列中不包含字串「PHP教學」<br><br>';
}
if(in_array('1234', $array, true)){
    echo '陣列中包含字串「1234」<br><br>';
}else{
    echo '陣列中不包含字串「1234」<br><br>';
}
?>

1.png

方法2:使用array_search()函數檢測

array_search() 函數可以在陣列中搜尋給定的值,如果成功則返回首個相應的鍵名,該函數的語法格式如下:

array_search($needle, $haystack[, $strict = false])

引數說明如下:

  • $needle:為要搜尋的值,如果 $needle 為字串型別,則在搜尋時區分大小寫;
  • $haystack:為一個陣列;
  • $strict:可選引數,可以為空,預設為 False。
    • 如果 $strict 為 False,則 array_search() 在 $haystack 中搜尋 $needle 時僅會比較值,不比較型別。
    • 如果 $strict 為 True,則 array_search() 在 $haystack 中搜尋 $needle 時會同時比較值和型別。

array_search() 函數如果找到了 $needle 則返回它的鍵,否則返回 False。

<?php
header("Content-type:text/html;charset=utf-8");
$array = array(
    'name'  =>'PHP中文網',
    'url'   =>'https://www.php.cn/',
    'title' =>'PHP教學',
    'pid'   =>1234,
     'level' => 1111,
);
var_dump($array);
var_dump(array_search('1234', $array, true));
var_dump(array_search('PHP教學', $array));
var_dump(array_search('1111', $array, true));
var_dump(array_search(1111, $array, true));
?>

2.png

說明:如果 $needle 在 $haystack 中出現不止一次,則僅會返回第一個匹配的鍵。若要返回所有匹配值的鍵,應該用 array_keys() 函數來代替。

推薦學習:《》

以上就是php怎麼檢測陣列中是否包含某字串的詳細內容,更多請關注TW511.COM其它相關文章!