Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menanyakan elemen dalam tatasusunan yang sama menggunakan PHP

Bagaimana untuk menanyakan elemen dalam tatasusunan yang sama menggunakan PHP

PHPz
PHPzasal
2023-04-23 10:22:18841semak imbas

PHP ialah bahasa skrip bahagian pelayan berorientasikan objek, yang sangat sesuai untuk membangunkan aplikasi web sebelah pelayan. Tatasusunan ialah jenis data yang sangat penting dalam PHP yang membolehkan berbilang nilai dikumpulkan bersama dan dirujuk serta dimanipulasi sebagai pembolehubah tunggal. Dalam proses menggunakan tatasusunan, kami sering menghadapi situasi di mana kami perlu menanyakan elemen dalam tatasusunan yang sama.

1. Gunakan gelung traversal untuk membuat pertanyaan

PHP menyediakan pelbagai pernyataan gelung yang boleh digunakan untuk melintasi elemen dalam tatasusunan dan melaksanakan operasi pertanyaan. Di sini kami memperkenalkan dua pernyataan gelung yang biasa digunakan:

1.1 untuk gelung

Gelung for ialah pernyataan gelung yang biasa digunakan yang boleh digunakan untuk melintasi elemen dalam tatasusunan. Berikut ialah kod sampel yang menggunakan gelung for untuk menanyakan elemen dalam tatasusunan yang sama:

<?php
$array = array(1, 2, 3, 4, 1, 3);
$len = count($array);
for ($i = 0; $i < $len; $i++) {
    for ($j = $i + 1; $j < $len; $j++) {
        if ($array[$i] == $array[$j]) {
            echo "相同的元素为:".$array[$i]."<br />";
        }
    }
}
?>

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan $array yang mengandungi elemen berulang, dan kemudian gunakan untuk gelung untuk merentasi tatasusunan semua elemen, untuk setiap elemen kita sekali lagi menggunakan gelung for untuk mencari elemen yang sama dengannya. Jika elemen yang sama ditemui, elemen tersebut adalah output.

1.2 gelung foreach

Gelung foreach juga merupakan pernyataan gelung yang biasa digunakan, yang boleh digunakan untuk melintasi elemen dalam tatasusunan dan melaksanakan operasi pertanyaan. Berikut ialah kod sampel yang menggunakan gelung foreach untuk menanyakan elemen dalam tatasusunan yang sama:

<?php
$array = array(1, 2, 3, 4, 1, 3);
$count = array_count_values($array);
foreach ($count as $key => $value) {
    if ($value > 1) {
        echo "相同的元素为:".$key."<br />";
    }
}
?>

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan yang mengandungi elemen berulang $array, dan kemudian gunakan PHP fungsi terbina dalam array_count_values Kira bilangan kejadian setiap elemen dalam tatasusunan dan simpan keputusan statistik dalam tatasusunan bersekutu $count. Akhir sekali, kami menggunakan gelung foreach untuk melintasi tatasusunan $count dan menentukan sama ada bilangan kejadian lebih besar daripada 1. Jika lebih besar daripada 1, elemen akan dikeluarkan.

2. Gunakan fungsi terbina dalam PHP untuk membuat pertanyaan

Dalam PHP, terdapat berbilang fungsi terbina dalam yang boleh digunakan untuk menanyakan elemen dalam tatasusunan yang sama di bawah kami memperkenalkan dua yang biasa digunakan fungsi:

2.1 array_count_values

Array_count_values ​​​​Fungsi boleh digunakan untuk mengira bilangan kejadian setiap elemen dalam tatasusunan dan menyimpan keputusan statistik dalam tatasusunan bersekutu. Berikut ialah kod sampel yang menggunakan fungsi array_count_values ​​​​untuk menanyakan elemen dalam tatasusunan yang sama:

<?php
$array = array(1, 2, 3, 4, 1, 3);
$count = array_count_values($array);
foreach ($count as $key => $value) {
    if ($value > 1) {
        echo "相同的元素为:".$key."<br />";
    }
}
?>

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan $array yang mengandungi elemen berulang, dan kemudian gunakan fungsi terbina dalam PHP array_count_values Kira bilangan kejadian setiap elemen dalam tatasusunan dan simpan keputusan statistik dalam tatasusunan bersekutu $count. Akhir sekali, kami menggunakan gelung foreach untuk melintasi tatasusunan $count dan menentukan sama ada bilangan kejadian lebih besar daripada 1. Jika lebih besar daripada 1, elemen akan dikeluarkan.

2.2 array_unique, array_diff_assoc dan array_diff_key

Fungsi array_unique boleh digunakan untuk mengalih keluar elemen pendua dalam tatasusunan dan mengembalikan tatasusunan selepas mengalih keluar elemen pendua. Fungsi array_diff_assoc dan array_diff_key boleh digunakan untuk membandingkan perbezaan antara dua tatasusunan dan mengembalikan elemen yang berbeza. Dengan menggunakan fungsi ini, kita juga boleh menanyakan elemen dalam tatasusunan yang sama Berikut ialah kod sampel:

<?php
$array = array(1, 2, 3, 4, 1, 3);
$unique = array_unique($array);
$diff = array_diff_assoc($array, $unique);
foreach ($diff as $key => $value) {
    echo "相同的元素为:".$value."<br />";
}
?>

Dalam kod di atas, kami mula-mula mentakrifkan tatasusunan $array yang mengandungi elemen berulang kemudian gunakan fungsi array_unique untuk mengalih keluar elemen pendua daripada tatasusunan dan menyimpan hasilnya dalam pembolehubah $unique. Kemudian kami menggunakan fungsi array_diff_assoc untuk membandingkan perbezaan antara dua tatasusunan dan menyimpan elemen yang berbeza ke dalam pembolehubah $diff. Akhirnya kami menggunakan foreach untuk menggelungkan melalui tatasusunan $diff dan mengeluarkan elemen yang sama.

Ringkasan

Di atas ialah cara menanyakan elemen dalam tatasusunan yang sama dalam PHP Kita boleh melaksanakan fungsi ini dengan mudah dengan menggunakan penyataan gelung, fungsi terbina dalam dan kaedah lain. Dalam pembangunan sebenar, anda boleh memilih kaedah yang sesuai dengan anda untuk operasi pertanyaan. Pada masa yang sama, perlu diingatkan bahawa elemen berulang mungkin mempunyai kesan ke atas prestasi program, jadi dalam pembangunan sebenar, anda harus cuba mengelakkan elemen berulang dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk menanyakan elemen dalam tatasusunan yang sama menggunakan 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