Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menentukan sama ada nilai berada dalam tatasusunan dalam PHP (analisis ringkas pelbagai kaedah)

Bagaimana untuk menentukan sama ada nilai berada dalam tatasusunan dalam PHP (analisis ringkas pelbagai kaedah)

PHPz
PHPzasal
2023-04-12 09:19:581149semak imbas

PHP ialah bahasa pengaturcaraan yang popular, dan tatasusunannya ialah struktur data yang sangat penting. Apabila kita perlu menentukan sama ada nilai berada dalam tatasusunan, kita boleh menggunakan fungsi in_array() dalam PHP. Artikel ini akan memperincikan cara menggunakan fungsi in_array() dan beberapa kaedah lain untuk menentukan sama ada sesuatu nilai berada dalam tatasusunan.

1 Gunakan fungsi in_array() untuk menentukan sama ada nilai berada dalam array

Dalam PHP, fungsi in_array() ialah kaedah yang paling mudah dan paling biasa digunakan untuk menentukan sama ada nilai berada dalam tatasusunan. Sintaksnya adalah seperti berikut:

in_array($value, $array, $strict);

di mana $value ialah nilai yang ditemui, $array ialah array yang hendak ditemui, dan $strict ialah Parameter pilihan yang menunjukkan sama ada pemeriksaan jenis akan dilakukan.

Sebagai contoh, kami mempunyai array $fruits, yang mengandungi beberapa buah:

$fruits = [
  'apple',
  'banana',
  'pear',
  'orange',
  'kiwi'
];

Kami kini ingin menentukan sama ada "pear" berada dalam array $fruits, anda boleh menggunakan kod berikut:

if (in_array('pear', $fruits)) {
  echo 'pear is in the array.';
} else {
  echo 'pear is not in the array.';
}

Hasil output ialah:

pear is in the array.

Jika anda ingin melakukan semakan jenis, anda boleh menetapkan parameter $strict kepada benar. Contohnya:

$numbers = [1, 2, 3, 4, 5];
if (in_array('1', $numbers, true)) {
  echo '1 is in the array.';
} else {
  echo '1 is not in the array.';
}

Hasil keluaran ialah:

1 is not in the array.

2. Gunakan fungsi array_search() untuk menentukan sama ada nilai berada dalam tatasusunan

Satu lagi cara untuk menentukan sama ada nilai dalam tatasusunan Kaedah dalam tatasusunan ialah menggunakan fungsi array_search(). Sintaksnya adalah seperti berikut:

array_search($value, $array, $strict);

Di mana, $value ialah nilai yang akan ditemui, $array ialah array yang akan ditemui, dan $strict ialah Parameter pilihan yang menunjukkan sama ada pemeriksaan jenis akan dilakukan. Jika ditemui, fungsi mengembalikan nama kunci nilai dalam tatasusunan jika tidak dijumpai, mengembalikan palsu.

Sebagai contoh, kami mempunyai tatasusunan $harga bersekutu, yang mengandungi harga beberapa buah:

$prices = [
  'apple' => 0.5,
  'banana' => 0.3,
  'pear' => 0.6,
  'orange' => 0.8,
  'kiwi' => 0.7
];

Kami kini ingin menentukan sama ada harga "pisang" wujud dalam tatasusunan $prices , anda boleh menggunakan kod berikut:

$key = array_search(0.3, $prices);
if ($key !== false) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}

Hasil output ialah:

banana exists and the price is 0.3

Jika anda ingin melakukan semakan jenis, anda boleh menetapkan parameter $strict kepada benar . Contohnya:

$key = array_search('0.3', $prices, true);
if ($key !== false) {
  echo 'banana exists but its price is in a different data type.';
} else {
  echo 'banana does not exist.';
}

Hasil keluaran ialah:

banana does not exist.

3 Gunakan fungsi isset() untuk menentukan sama ada nilai berada dalam tatasusunan

Satu lagi. kaedah mudah ialah Gunakan fungsi isset() untuk menentukan sama ada kunci wujud dalam tatasusunan. Contohnya:

if (isset($prices['banana'])) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}

Hasil keluaran adalah sama seperti contoh sebelumnya, iaitu:

banana exists and the price is 0.3

Walau bagaimanapun, kaedah ini tidak dapat menentukan sama ada nilai wujud di antara nilai-nilai itu dalam tatasusunan Ia hanya boleh Menentukan sama ada kunci wujud dalam tatasusunan. Oleh itu, ia hanya berfungsi dengan tatasusunan biasa, bukan tatasusunan bersekutu atau tatasusunan berbilang dimensi.

4. Gunakan kaedah sambungan in_array() dan array_search()

Selain menggunakan fungsi in_array() dan array_search(), terdapat beberapa kaedah sambungan yang boleh membantu kami lebih baik Tentukan sama ada nilai berada dalam tatasusunan. Contohnya:

1 Gunakan fungsi array_keys() dalam fungsi in_array():

if (in_array($value, array_keys($array))) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}

Prinsip kaedah ini adalah menggunakan fungsi array_keys() untuk mendapatkan semua. kunci dalam tatasusunan, Kemudian gunakan fungsi in_array() untuk menentukan sama ada nilai itu berada dalam senarai kunci. Walau bagaimanapun, kaedah ini tidak cekap dan mengambil banyak memori dan masa jika tatasusunan adalah besar.

2. Gunakan fungsi array_flip() dan fungsi isset():

if (isset(array_flip($array)[$value])) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}

Prinsip kaedah ini adalah menggunakan fungsi array_flip() untuk membalikkan kunci dan nilai ​dalam tatasusunan, dan kemudian gunakan fungsi isset() untuk menentukan sama ada nilai itu wujud dalam tatasusunan baharu. Kaedah ini lebih cekap, tetapi ia hanya terpakai pada tatasusunan biasa, bukan tatasusunan bersekutu atau tatasusunan berbilang dimensi.

5. Ringkasan

Dalam PHP, terdapat banyak cara untuk menentukan sama ada sesuatu nilai berada dalam tatasusunan Kaedah yang paling biasa ialah menggunakan fungsi in_array() dan array_search(). Jika anda ingin melakukan pemeriksaan jenis, anda perlu menetapkan parameter $strict kepada benar. Selain itu, terdapat beberapa kaedah lanjutan yang boleh membantu kami menentukan dengan lebih baik sama ada nilai itu berada dalam tatasusunan. Situasi yang berbeza memerlukan kaedah yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada nilai berada dalam tatasusunan dalam PHP (analisis ringkas pelbagai kaedah). 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