Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada unsur wujud dalam tatasusunan dalam php

Bagaimana untuk menentukan sama ada unsur wujud dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-19 10:04:23706semak imbas

Dalam pengaturcaraan PHP, kita selalunya perlu beroperasi pada tatasusunan. Dalam sesetengah kes, kita perlu menentukan sama ada unsur wujud dalam tatasusunan untuk memudahkan operasi seterusnya. Jadi, bagaimana untuk menentukan sama ada unsur wujud dalam tatasusunan?

1. Gunakan fungsi in_array()

Fungsi dalam_array() PHP boleh digunakan untuk menentukan sama ada elemen berada dalam tatasusunan. Sintaks fungsi ini adalah seperti berikut:

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

Antaranya, $needle mewakili elemen yang hendak dicari, $haystack mewakili tatasusunan yang hendak dicari, dan $strict mewakili sama ada mod ketat dihidupkan, iaitu jenis data juga mestilah sama.

Contohnya, untuk menentukan sama ada nombor 1 berada dalam tatasusunan:

<?php
$numbers = array(1, 2, 3, 4, 5);
if (in_array(1, $numbers)) {
    echo "数字1在数组中";
} else {
    echo "数字1不在数组中";
}
?>

Hasil output ialah: "Nombor 1 ada dalam tatasusunan".

Tentukan sama ada rentetan "hello" berada dalam tatasusunan:

<?php
$strings = array("hello", "world", "php");
if (in_array("hello", $strings)) {
    echo "字符串hello在数组中";
} else {
    echo "字符串hello不在数组中";
}
?>

Hasil output ialah: "Rentetan hello ada dalam tatasusunan".

2. Gunakan fungsi array_search()

Selain fungsi in_array(), kita juga boleh menggunakan fungsi array_search() untuk menentukan sama ada sesuatu elemen berada dalam array. Sintaks fungsi ini adalah seperti berikut:

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

Antaranya, $needle mewakili elemen yang hendak dicari, $haystack mewakili tatasusunan yang hendak dicari, dan $strict mewakili sama ada mod ketat dihidupkan, iaitu jenis data juga mestilah sama. Jika elemen wujud dalam tatasusunan, mengembalikan subskrip yang sepadan dengan elemen jika ia tidak wujud, mengembalikan palsu.

Contohnya, untuk menentukan sama ada nombor 3 berada dalam tatasusunan:

<?php
$numbers = array(1, 2, 3, 4, 5);
$search_result = array_search(3, $numbers);
if ($search_result !== false) {
    echo "数字3在数组中,下标为:{$search_result}";
} else {
    echo "数字3不在数组中";
}
?>

Hasil output ialah: "Nombor 3 ada dalam tatasusunan, subskrip ialah: 2".

Tentukan sama ada rentetan "php" berada dalam tatasusunan:

<?php
$strings = array("hello", "world", "php");
$search_result = array_search("php", $strings);
if ($search_result !== false) {
    echo "字符串php在数组中,下标为:{$search_result}";
} else {
    echo "字符串php不在数组中";
}
?>

Hasil output ialah: "php rentetan berada dalam tatasusunan, subskrip ialah: 2".

3. Perbezaan antara menggunakan in_array dan array_search

in_array() dan array_search() mempunyai kesan yang sama apabila menilai sama ada sesuatu elemen berada dalam array. Tetapi mereka mempunyai perbezaan berikut:

  1. Jenis nilai pulangan adalah berbeza

Nilai pulangan in_array() ialah nilai Boolean, yang menunjukkan sama ada elemen itu wujud dalam array; dan nilai pulangan array_search( ) ialah nama kunci Jika elemen itu tidak wujud, ia mengembalikan palsu.

  1. Ketepatan yang berbeza

Fungsi in_array() hanya menentukan sama ada nilai unsur adalah sama, tanpa mengira jenis elemen. Sebagai contoh, in_array("1", array(1, 2, 3)) akan kembali benar kerana "1" ditukar kepada nombor 1 dan sama dengan elemen 1 dalam array.

Fungsi array_search() juga akan melakukan penukaran jenis dan menentukan sama ada nilai elemen adalah sama apabila mod ketat tidak dihidupkan. Sebagai contoh, array_search("1", array(1, 2, 3)) akan mengembalikan 0 kerana "1" ditukar kepada nombor 1 dan sama dengan elemen 1 dalam tatasusunan, dan kunci elemen 1 ialah 0.

Selepas menghidupkan mod ketat, array_search() akan melakukan perbandingan yang lebih tepat, termasuk jenis dan nilai elemen. Sebagai contoh, array_search("1", array(1, 2, 3), true) akan mengembalikan false kerana jenis elemen 1 ialah integer, yang tidak sama dengan jenis rentetan "1".

4 Gunakan fungsi isset()

Dalam pembangunan sebenar, kita juga boleh menggunakan fungsi isset() untuk menentukan sama ada unsur wujud dalam tatasusunan. Fungsi isset() boleh digunakan untuk mengesan sama ada pembolehubah ditetapkan (bukan null) untuk menentukan sama ada unsur wujud dalam tatasusunan.

Sebagai contoh, tentukan sama ada terdapat elemen dengan subskrip "nama pengguna" dalam tatasusunan:

<?php
$user_info = array("username" => "admin", "email" => "admin@php.net");
if (isset($user_info["username"])) {
    echo "数组中存在username元素";
} else {
    echo "数组中不存在username元素";
}
?>

Hasil output ialah: "Elemen nama pengguna wujud dalam tatasusunan."

Ringkasan

Dalam PHP, terdapat banyak cara untuk menentukan sama ada unsur wujud dalam tatasusunan, termasuk fungsi seperti in_array(), array_search() dan isset(). Dalam penggunaan sebenar, kita boleh memilih kaedah yang sesuai untuk menilai elemen dalam tatasusunan seperti yang diperlukan untuk memudahkan operasi seterusnya.

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