Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php mencari sama ada nilai tertentu wujud dalam tatasusunan

php mencari sama ada nilai tertentu wujud dalam tatasusunan

PHPz
PHPzasal
2023-05-05 20:47:06995semak imbas

Dalam PHP, tatasusunan ialah struktur data yang sangat biasa yang boleh menyimpan berbilang item data berkaitan. Dalam pembangunan sebenar, kita sering perlu mencari sama ada nilai tertentu wujud dalam tatasusunan. Artikel ini akan memperkenalkan beberapa kaedah mencari elemen tatasusunan dalam PHP dan membincangkan kelebihan dan kekurangannya.

Kaedah 1: fungsi in_array

Fungsi in_array boleh digunakan untuk menentukan sama ada unsur wujud dalam tatasusunan adalah seperti berikut:

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

Antaranya, $needle mewakili elemen yang akan dicari, $hystack mewakili array yang hendak dicari dan $strict mewakili sama ada untuk mendayakan perbandingan jenis . Apabila $strict adalah benar, ia dinilai sama ada nilai dan jenis elemen adalah sama sepenuhnya.

Kod sampel adalah seperti berikut:

<?php
$fruits = array('apple', 'banana', 'orange');
if (in_array('apple', $fruits)) {
    echo '存在';
} else {
    echo '不存在';
}
?>

Dalam contoh ini, elemen 'epal' wujud dalam tatasusunan $fruits, jadi output 'wujud'

Kelemahan: Fungsi in_array adalah ringkas dan mudah Digunakan, tetapi ia hanya mengembalikan sama ada elemen itu wujud, dan tidak boleh mendapatkan nilai kunci elemen secara langsung.

Kaedah 2: fungsi array_key_exists

Fungsi array_key_exists boleh digunakan untuk menyemak sama ada nama kunci atau indeks yang ditentukan wujud dalam tatasusunan. Sintaksnya adalah seperti berikut:

bool array_key_exists ( mixed $key , array $array )

Antaranya, $key mewakili nama kunci atau indeks yang hendak dicari dan $array mewakili array untuk dicari.

Kod sampel adalah seperti berikut:

<?php
$fruits = array('a' => 'apple', 'b' => 'banana', 'o' => 'orange');
if (array_key_exists('a', $fruits)) {
    echo '存在';
} else {
    echo '不存在';
}
?>

Dalam contoh ini, terdapat elemen dengan nama kunci 'a' dalam tatasusunan $fruits, jadi output 'wujud'

Kelemahan: array_key_exists Fungsi hanya mengembalikan sama ada nama kunci wujud dan tidak boleh mendapatkan nilai elemen.

Kaedah 3: Gunakan in_array dan array_search bersama

Menggabungkan fungsi in_array dan array_search boleh mencapai tujuan mencari nilai elemen dan nama kunci pada masa yang sama. Fungsi in_array digunakan untuk mencari nilai elemen, dan fungsi array_search digunakan untuk mencari nama kunci.

Kod sampel adalah seperti berikut:

<?php
$fruits = array('a' => 'apple', 'b' => 'banana', 'o' => 'orange');
if (($key = array_search('banana', $fruits)) !== false) {
    echo '存在,键名为' . $key;
} else {
    echo '不存在';
}
?>

Dalam contoh ini, terdapat elemen dengan nilai 'pisang' dalam tatasusunan $fruits, jadi output adalah 'wujud, nama kunci b '.

Kelemahan: Anda perlu melaksanakan fungsi in_array dahulu, dan kemudian laksanakan fungsi array_search jika wujud, yang kurang cekap. Pada masa yang sama, adalah mustahil untuk menilai kes khas seperti nama kunci 0 atau palsu, yang dianggap tidak wujud.

Kaedah 4: gelung foreach

Gunakan gelung foreach untuk merentasi tatasusunan dan ketahui sama ada elemen yang ditentukan wujud satu demi satu. Apabila elemen ditemui, nilai dan nama kunci elemen boleh diperoleh secara langsung.

Kod sampel adalah seperti berikut:

<?php
$fruits = array('a' => 'apple', 'b' => 'banana', 'o' => 'orange');
foreach($fruits as $key => $value) {
    if ($value == 'banana') {
        echo '存在,键名为' . $key;
        break;
    }
}
?>

Dalam contoh ini, terdapat elemen dengan nilai 'pisang' dalam tatasusunan $fruits, jadi output adalah 'wujud, nama kunci ialah b'.

Kelebihan: Nilai dan nama kunci elemen boleh diperoleh pada masa yang sama, mengelakkan masalah kegagalan penghakiman disebabkan oleh keadaan khas seperti nama kunci 0 atau palsu.

Ringkasnya, kita boleh memilih kaedah yang berbeza untuk mencari elemen dalam tatasusunan mengikut keperluan sebenar. Jika anda hanya perlu menentukan sama ada unsur wujud, anda boleh menggunakan fungsi in_array. Jika anda perlu mendapatkan nama kunci sesuatu elemen, anda boleh menggunakan fungsi array_key_exists. Jika anda perlu mendapatkan nilai dan nama kunci elemen pada masa yang sama, anda boleh menggunakan in_array dan array_search bersama-sama, atau gunakan gelung foreach untuk melintasi tatasusunan.

Atas ialah kandungan terperinci php mencari sama ada nilai tertentu wujud dalam tatasusunan. 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