Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengetahui sama ada rentetan tertentu wujud dalam tatasusunan dalam php

Bagaimana untuk mengetahui sama ada rentetan tertentu wujud dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 09:07:55660semak imbas

Untuk pembangun PHP, tatasusunan sering diperlukan. Tatasusunan disimpan dalam pasangan nilai kunci Apabila jumlah data adalah besar, mencari elemen mungkin memakan masa. PHP mempunyai pelbagai fungsi terbina dalam untuk mencari sama ada nilai yang ditentukan wujud dalam tatasusunan Artikel ini akan memperkenalkan beberapa daripadanya dan perbezaan antaranya. Fungsi

in_array

in_array() ialah salah satu fungsi tatasusunan terbina dalam PHP, yang digunakan untuk mencari nilai yang ditentukan dalam tatasusunan. Sintaksnya adalah seperti berikut:

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

Di mana,

  • campuran $jarum: Nilai untuk ditemui.
  • array $haystack: Tatasusunan untuk dicari.
  • bool $strict: Sama ada hendak menggunakan mod ketat. Jika benar, carian membandingkan jenis data dan nilai jenis yang berbeza tidak sama. Lalai adalah palsu.

Fungsi ini akan mengembalikan nilai Boolean yang menunjukkan sama ada nilai itu dalam tatasusunan. Jika ya, kembalikan benar, sebaliknya pulangkan palsu.

Sebagai contoh, kod berikut menunjukkan cara menggunakan fungsi in_array() untuk mencari sama ada rentetan "epal" wujud dalam tatasusunan $fruits:

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

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

Hasil output ialah: Fungsi

找到了 apple。

array_search

array_search() juga merupakan salah satu fungsi tatasusunan terbina dalam PHP Ia digunakan untuk mencari nilai yang ditentukan dalam tatasusunan dan mengembalikan kuncinya. Sintaksnya adalah seperti berikut:

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

Di mana,

  • campuran $jarum: Nilai untuk ditemui.
  • array $haystack: Tatasusunan untuk dicari.
  • bool $strict: Sama ada hendak menggunakan mod ketat. Jika benar, carian membandingkan jenis data dan nilai jenis yang berbeza tidak sama. Lalai adalah palsu.

Fungsi ini akan mengembalikan kunci nilai yang ditemui (menggunakan kekunci angka dan kekunci yang berkaitan), atau palsu jika tidak ditemui.

Sebagai contoh, kod berikut menunjukkan cara menggunakan fungsi array_search() untuk mencari sama ada rentetan "epal" wujud dalam tatasusunan $fruits dan mengembalikan kuncinya:

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

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

Output keputusan Ia adalah:

找到了 apple,它的键是 2。

Perlu diingatkan bahawa jika kunci yang sepadan dengan nilai ialah 0, fungsi array_search() akan mengembalikan 0, yang boleh menyebabkan masalah dalam program, jadi pertimbangan jenis diperlukan .

fungsi isset dan array_key_exists

isset() fungsi dan fungsi array_key_exists() boleh digunakan untuk menentukan sama ada kunci wujud dalam tatasusunan Sintaks adalah seperti berikut:

bool isset ( mixed $var [, mixed $... ] )
bool array_key_exists ( mixed $key , array $array )

Antaranya,

  • campuran $var/$key: kunci untuk ditemui.
  • campuran $...: Pilihan. Berbilang kunci untuk dicari.
  • tatasusunan $array: tatasusunan untuk dicari.

Kedua-dua fungsi akan mengembalikan nilai boolean yang menunjukkan sama ada kunci itu ada dalam tatasusunan.

Perlu diambil perhatian bahawa perbezaan antara kedua-dua fungsi ialah fungsi isset() juga boleh digunakan untuk menentukan sama ada pembolehubah wujud Jika pembolehubah tidak diisytiharkan, ia akan kembali palsu. Fungsi array_key_exists() hanya boleh digunakan untuk tatasusunan dan tidak menyokong pencarian tatasusunan berbilang dimensi.

Sebagai contoh, kod berikut menunjukkan cara menggunakan fungsi isset() dan fungsi array_key_exists() untuk menentukan sama ada kunci wujud:

$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。";
}

Outputnya ialah:

存在键 banana。存在键 orange。

Ringkasan

Artikel ini memperkenalkan empat fungsi untuk mencari elemen dalam tatasusunan PHP: in_array(), array_search(), isset() dan array_key_exists(). Fungsi ini boleh dipilih dan digunakan mengikut keperluan yang berbeza, antaranya fungsi array_search() mempunyai kelebihan tertentu kerana ia mengembalikan kunci dan bukannya nilai Boolean. Tetapi perlu diingatkan bahawa untuk menentukan sama ada nilai berada dalam tatasusunan, lebih baik menggunakan fungsi in_array(), kerana jika kuncinya ialah 0, fungsi array_search() akan mengembalikan 0.

Akhir sekali, perlu dinyatakan bahawa tiada satu pun fungsi di atas sesuai untuk tatasusunan berbilang dimensi Untuk tatasusunan berbilang dimensi, kami perlu menggunakan rekursi atau algoritma lain untuk menyelesaikan operasi carian.

Atas ialah kandungan terperinci Bagaimana untuk mengetahui sama ada rentetan tertentu wujud dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn