Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada nilai tertentu wujud dalam tatasusunan dalam php

Bagaimana untuk menentukan sama ada nilai tertentu wujud dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 09:10:46623semak imbas

Sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, PHP menyediakan pelbagai fungsi dan kaedah untuk mengendalikan pelbagai jenis data, termasuk tatasusunan. Dalam penggunaan tatasusunan, adalah keperluan biasa untuk menentukan sama ada nilai tertentu wujud dalam tatasusunan. Jadi, bagaimana untuk melaksanakan fungsi ini dalam PHP? Artikel ini akan memperkenalkan anda kepada beberapa kaedah yang biasa digunakan.

fungsi in_array()

PHP menyediakan fungsi in_array(), yang boleh menentukan dengan mudah sama ada nilai wujud dalam tatasusunan. Prototaip fungsi ini adalah seperti berikut:

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

Antaranya, $needle mewakili nilai yang akan ditemui, $haystack mewakili tatasusunan yang akan ditemui, dan $strict mewakili sama ada untuk menggunakan mod ketat lalai adalah palsu. Jika nilai ditemui, kembalikan benar jika tidak, kembalikan palsu.

Contohnya, kami mempunyai susunan $buah dengan kandungan ["epal", "pisang", "nanas", "oren"]. Sekarang untuk mengetahui sama ada nilai "pisang" wujud di dalamnya, anda boleh menggunakan fungsi in_array (), kodnya adalah seperti berikut:

$fruits = array("apple", "banana", "pineapple", "orange");
if (in_array("banana", $fruits)) {
    echo "该值已存在于数组中";
} else {
    echo "该值不存在于数组中";
}

Seperti yang dapat dilihat dari kod di atas, jika nilai "pisang" wujud, ia akan mengeluarkan "nilai sudah wujud dalam tatasusunan "; jika tidak, ia akan mengeluarkan "nilai" tidak wujud dalam tatasusunan".

Perlu diambil perhatian bahawa fungsi in_array() menggunakan mod tidak ketat secara lalai, iaitu, jika nilai yang dicari tidak konsisten dengan jenis data elemen dalam tatasusunan, ia juga akan dianggap wujud. Jika anda ingin menggunakan mod ketat, anda perlu menetapkan parameter $strict kepada benar. Sebagai contoh:

$numbers = array(1, 2, 3, "4");
if (in_array("4", $numbers, true)) {
    echo "该值已存在于数组中";
} else {
    echo "该值不存在于数组中";
}

Seperti yang dapat dilihat daripada kod di atas, walaupun terdapat elemen dalam tatasusunan dengan nilai 4, kerana ia adalah jenis rentetan dan nilai yang ditemui ialah angka jenis, ia tidak Dalam mod ketat ia akan dianggap tidak wujud. Jika parameter $strict ditetapkan kepada benar, mod ketat akan digunakan untuk carian dan "nilai tidak wujud dalam tatasusunan" akan dikeluarkan.

fungsi array_search()

Serupa dengan fungsi in_array(), PHP juga menyediakan satu lagi fungsi array_search(), yang boleh mencari nilai dalam tatasusunan dan mengembalikan subskrip nilai . Prototaip fungsi ini adalah seperti berikut:

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

Antaranya, $needle mewakili nilai yang akan ditemui, $haystack mewakili tatasusunan yang akan ditemui, dan $strict mewakili sama ada untuk menggunakan mod ketat lalai adalah palsu. Jika nilai ditemui, subskrip di mana nilai berada dikembalikan jika tidak, palsu dikembalikan.

Sebagai contoh, kita mempunyai tatasusunan $numbers dengan kandungan [1, 2, 3, 4, 5]. Sekarang kita ingin mencari sama ada terdapat elemen dengan nilai 4 dan mengeluarkan subskrip elemen. Anda boleh Menggunakan fungsi array_search(), kodnya adalah seperti berikut:

$numbers = array(1, 2, 3, 4, 5);
if (($key = array_search(4, $numbers)) !== false) {
    echo "该值存在于数组中,其下标为" . $key;
} else {
    echo "该值不存在于数组中";
}

Seperti yang dapat dilihat daripada kod di atas, jika elemen dengan nilai 4 ditemui, ia akan menghasilkan output "Nilai ini wujud dalam tatasusunan, dan subskripnya ialah 3" ;

Perlu juga diambil perhatian bahawa fungsi array_search() juga akan menggunakan mod tidak ketat untuk mencari. Jika anda ingin menggunakan mod ketat, anda perlu menetapkan parameter $strict kepada benar. Contohnya:

$numbers = array(1, 2, 3, "4", 5);
if (($key = array_search("4", $numbers, true)) !== false) {
    echo "该值存在于数组中,其下标为" . $key;
} else {
    echo "该值不存在于数组中";
}

Seperti yang dapat dilihat daripada kod di atas, dalam mod tidak ketat, anda boleh mencari elemen dengan nilai "4" dan output "Nilai wujud dalam tatasusunan dan subskripnya ialah 3". Dalam mod ketat, memandangkan nilai yang akan ditemui adalah daripada jenis rentetan dan nilai elemen dalam tatasusunan adalah daripada jenis angka dan tidak boleh dipadankan, "nilai tidak wujud dalam tatasusunan" akan dikeluarkan.

fungsi isset() dan array_key_exists()

Selain daripada dua fungsi di atas, anda juga boleh menggunakan fungsi isset() dan array_key_exists() untuk menentukan sama ada kunci atau subskrip wujud dalam tatasusunan .

fungsi isset() boleh mengesan sama ada pembolehubah telah ditetapkan dan bukan nol. Jika pembolehubah telah ditetapkan dan bukan nol, mengembalikan benar jika tidak, mengembalikan palsu. Apabila menyemak sama ada kunci wujud dalam tatasusunan, anda boleh menggunakan fungsi isset(). Contohnya:

$person = array("name" => "Tom", "age" => 20);
if (isset($person["name"])) {
    echo "该键存在于数组中";
} else {
    echo "该键不存在于数组中";
}

Seperti yang dapat dilihat dari kod di atas, jika terdapat elemen dengan kunci "nama", ia akan mengeluarkan "Kunci wujud dalam tatasusunan"; "Kunci tidak wujud dalam tatasusunan" tengah".

Perlu diambil perhatian bahawa apabila mengesan unsur tatasusunan yang tidak wujud, fungsi isset() akan kembali palsu tanpa memberikan amaran. Contohnya:

$numbers = array(1, 2, 3, 4, 5);
if (isset($numbers[5])) {
    echo "该下标存在于数组中";
} else {
    echo "该下标不存在于数组中";
}

Seperti yang dapat dilihat daripada kod di atas, memandangkan elemen dengan subskrip 5 tidak wujud dalam tatasusunan, "Subskrip tidak wujud dalam tatasusunan" akan dikeluarkan.

Sama seperti fungsi isset(), fungsi array_key_exists() juga boleh mengesan sama ada kunci wujud dalam tatasusunan. Prototaip fungsi ini adalah seperti berikut:

bool array_key_exists ( mixed $key , array $array )

Antaranya, $key mewakili kunci yang hendak dicari, dan $array mewakili tatasusunan yang hendak dicari. Jika kunci ditemui, mengembalikan benar jika tidak, mengembalikan palsu.

Sebagai contoh, kami mempunyai tatasusunan $orang dengan kandungan ["name" => "Tom", "age" => 20], dan kini kami ingin mencari sama ada terdapat elemen dengan kunci "name" , dan keluarkan sama ada ia wujud, anda boleh menggunakan fungsi array_key_exists(), kodnya adalah seperti berikut:

$person = array("name" => "Tom", "age" => 20);
if (array_key_exists("name", $person)) {
    echo "该键存在于数组中";
} else {
    echo "该键不存在于数组中";
}

Seperti yang dapat dilihat daripada kod di atas, jika terdapat elemen dengan kunci "nama", ia akan mengeluarkan "Kunci wujud dalam tatasusunan" jika tidak, keluarkan "Kunci tidak wujud dalam tatasusunan".

Kesimpulan

Ringkasnya, menilai sama ada nilai atau kunci tertentu wujud dalam tatasusunan ialah operasi biasa dalam PHP, dan ia juga mudah untuk dilaksanakan. Selain kaedah yang diperkenalkan di atas, terdapat banyak fungsi dan kaedah lain yang boleh mencapai fungsi ini. Apabila menggunakannya, anda boleh memilih kaedah yang paling sesuai mengikut situasi sebenar untuk meningkatkan kecekapan dan kebolehbacaan program.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada nilai 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