目錄
in_array 函數
array_search 函數
isset 和array_key_exists 函數
總結
首頁 後端開發 PHP問題 php怎麼找出陣列中是否存在指定字串

php怎麼找出陣列中是否存在指定字串

Apr 20, 2023 am 09:07 AM

對於 PHP 開發者來說,經常需要使用到陣列。數組以鍵值對的方式存儲,當資料量比較大時,查找某個元素可能會變得很耗時。 PHP 內建了多種函數來找出陣列中是否存在指定值,本文將介紹其中的一些函數,以及它們之間的差異。

in_array 函數

in_array() 函數是 PHP 內建的陣列函數之一,它用於在陣列中尋找指定的值。它的語法如下:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
登入後複製

其中,

  • mixed $needle:要尋找的值。
  • array $haystack:尋找的陣列。
  • bool $strict:是否使用嚴格模式。如果為 true,則搜尋會比較資料類型,且不同類型的值不相等。預設為 false。

此函數將傳回布林值,表示值是否在陣列中。如果是,則傳回 true,否則傳回 false。

例如,以下程式碼示範如何使用in_array() 函數來尋找字串"apple" 是否存在於陣列$fruits 中:

$fruits = array("banana", "orange", "apple", "lemon");

if (in_array("apple", $fruits)) {
    echo "找到了 apple。";
} else {
    echo "没有找到 apple。";
}
登入後複製

輸出結果為:

找到了 apple。
登入後複製

array_search 函數

array_search() 函數也是PHP 內建的陣列函數之一,它用於在陣列中尋找指定的值,並傳回它的鍵。它的語法如下:

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
登入後複製

其中,

  • mixed $needle:要尋找的值。
  • array $haystack:尋找的陣列。
  • bool $strict:是否使用嚴格模式。如果為 true,則搜尋會比較資料類型,且不同類型的值不相等。預設為 false。

該函數將傳回找到的值的鍵(使用數字鍵和關聯鍵),如果沒找到,則傳回 false。

例如,以下程式碼示範如何使用array_search() 函數來尋找字串"apple" 是否存在於陣列$fruits 中,並傳回它的鍵:

$fruits = array("banana", "orange", "apple", "lemon");
$key = array_search("apple", $fruits);

if ($key) {
    echo "找到了 apple,它的键是 " . $key . "。";
} else {
    echo "没有找到 apple。";
}
登入後複製

輸出結果為:

找到了 apple,它的键是 2。
登入後複製

需要注意的是,如果值對應的鍵是0,則array_search() 函數會傳回0,這可能會導致程式出現問題,因此需要進行類型判斷。

isset 和array_key_exists 函數

isset() 函數和array_key_exists() 函數都可以用來判斷數組中是否存在某個鍵,語法如下:

bool isset ( mixed $var [, mixed $... ] )
bool array_key_exists ( mixed $key , array $array )
登入後複製

其中,

  • mixed $var/$key:要尋找的鍵。
  • mixed $...:可選。要尋找的多個鍵。
  • array $array:尋找的陣列。

兩個函數都會傳回一個布林值,表示鍵是否存在於陣列中。

要注意的是,兩個函數的差異在於,isset() 函數也可以用來判斷變數是否存在,如果變數未聲明,會傳回 false。而 array_key_exists() 函數只能用於數組,並且不支援搜尋多維數組。

例如,以下程式碼示範如何使用isset() 函數和array_key_exists() 函數來判斷鍵是否存在:

$fruits = array("banana" => 2, "orange" => 3, "apple" => 4, "lemon" => 1);

if (isset($fruits["banana"])) {
    echo "存在键 banana。";
} else {
    echo "不存在键 banana。";
}

if (array_key_exists("orange", $fruits)) {
    echo "存在键 orange。";
} else {
    echo "不存在键 orange。";
}
登入後複製

輸出結果為:

存在键 banana。存在键 orange。
登入後複製

總結

本文介紹了PHP 陣列中四個用於尋找元素的函數:in_array()array_search()isset()array_key_exists()。這些函數可以根據不同的需求選擇使用,其中 array_search() 函數具有一定的優勢,因為它會傳回鍵,而不是布林值。但要注意的是,要判斷值是否在陣列中,最好使用 in_array() 函數,因為如果鍵是 0,array_search() 函數會傳回 0。

最後,值得一提的是,以上函數皆不適用於多維數組,對於多維數組,我們需要使用遞迴或其他演算法來完成查找操作。

以上是php怎麼找出陣列中是否存在指定字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1653
14
CakePHP 教程
1413
52
Laravel 教程
1304
25
PHP教程
1251
29
C# 教程
1224
24