Rumah > pembangunan bahagian belakang > masalah PHP > Keluarkan nilai yang sama dari tatasusunan php

Keluarkan nilai yang sama dari tatasusunan php

WBOY
Lepaskan: 2023-05-07 19:56:06
asal
563 orang telah melayarinya

Dalam PHP, tatasusunan ialah jenis data yang sangat penting, dan sering dijumpai bahawa nilai yang sama dalam tatasusunan perlu dialih keluar. Proses ini dipanggil deduplikasi, juga dikenali sebagai mengalih keluar pendua. Dalam pembangunan sebenar, deduplikasi adalah langkah yang perlu untuk menyelesaikan banyak masalah.

PHP menyediakan pelbagai fungsi terbina dalam yang boleh digunakan untuk menyahduplikasi tatasusunan Artikel ini akan memperkenalkan empat kaedah yang biasa digunakan.

Kaedah 1: Gunakan fungsi array_unique()

Fungsi array_unique() ialah salah satu fungsi yang paling mudah dan paling biasa digunakan dalam PHP. Ia boleh digunakan untuk mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu.

Berikut ialah contoh mudah:

$arr = array(1, 2, 3, 2, 4, 3, 5);
$result = array_unique($arr);
print_r($result);
Salin selepas log masuk

Keluaran kod ini ialah:

Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => 5 )
Salin selepas log masuk

Anda boleh melihat bahawa nilai pendua 2 dan 3 dalam tatasusunan asal telah dikeluarkan. Walau bagaimanapun, perlu diingatkan bahawa fungsi array_unique() hanya boleh digunakan untuk mengalih keluar nilai pendua dalam tatasusunan satu dimensi. Jika anda perlu mengalih keluar nilai pendua daripada tatasusunan berbilang dimensi, anda perlu menggunakan kaedah lain.

Kaedah 2: Gunakan fungsi array_count_values()

array_count_values() fungsi digunakan untuk mengira bilangan kejadian setiap nilai dalam tatasusunan dan mengembalikan tatasusunan baru dengan bilangan kejadian setiap nilai sebagai nilai kunci yang sepadan.

Berikut ialah contoh:

$arr = array(1, 2, 3, 2, 4, 3, 5);
$result = array_count_values($arr);
print_r($result);
Salin selepas log masuk

Keluaran kod ini ialah:

Array ( [1] => 1 [2] => 2 [3] => 2 [4] => 1 [5] => 1 )
Salin selepas log masuk

Dalam tatasusunan baharu ini, setiap kunci mewakili nilai yang muncul dalam tatasusunan asal , dan nilai yang sepadan mewakili bilangan kali nilai itu muncul dalam tatasusunan asal.

Jika anda hanya mengambil berat tentang nilai unik dalam tatasusunan asal, anda boleh menggunakan fungsi array_keys() untuk mendapatkan semua kunci dalam tatasusunan baharu untuk mendapatkan nombor asal Anda hanya perlu menggunakan array_unique () berfungsi untuk mengalih keluar nilai pendua.

Kaedah 3: Gunakan gelung foreach

Jika anda tidak mahu menggunakan fungsi terbina dalam, anda boleh mengalih keluar nilai pendua daripada tatasusunan dengan menulis gelung foreach.

Berikut ialah contoh:

$arr = array(1, 2, 3, 2, 4, 3, 5);
$result = array();
foreach ($arr as $value) {
    if (!in_array($value, $result)) {
        $result[] = $value;
    }
}
print_r($result);
Salin selepas log masuk

Keluaran kod ini adalah sama seperti semasa menggunakan fungsi array_unique().

Dalam contoh ini, kita mula-mula mentakrifkan tatasusunan kosong $result, dan kemudian menggunakan gelung foreach untuk melelaran melalui semua nilai dalam tatasusunan asal $arr. Jika nilai semasa tiada dalam tatasusunan $result, tambahkannya pada tatasusunan $result, dengan itu mencipta tatasusunan baharu yang unik.

Perlu diperhatikan bahawa dalam gelung ini, kami menggunakan fungsi in_array() untuk menentukan sama ada nilai semasa berada dalam tatasusunan $result. Jika nilai itu wujud dalam tatasusunan $result, ia telah pun ditambah, jadi kita tidak perlu menambahnya lagi.

Kaedah 4: Gunakan fungsi array_flip() dan array_values()

Akhir sekali, kami akan memperkenalkan kaedah penyahduplikasi menggunakan fungsi array_flip() dan array_values(). Fungsi

array_flip() boleh menukar kekunci dan nilai dalam tatasusunan untuk mencipta tatasusunan baharu. Jika tatasusunan asal mengandungi nilai pendua, kaedah ini akan mengalih keluar nilai pendua secara automatik.

Berikut ialah contoh:

$arr = array(1, 2, 3, 2, 4, 3, 5);
$result = array_values(array_flip($arr));
print_r($result);
Salin selepas log masuk

Keluaran kod ini adalah sama seperti contoh sebelumnya.

Dalam contoh ini, kita mula-mula menggunakan fungsi array_flip() untuk menukar kunci dan nilai dalam tatasusunan asal, dan kemudian gunakan fungsi array_values() untuk menyusun semula nilai dalam tatasusunan baharu. Memandangkan tatasusunan asal mengandungi nilai pendua, nilai pendua ini dialih keluar secara automatik apabila menggunakan fungsi array_flip().

Kesimpulan

Deduplikasi tatasusunan sudah pasti merupakan operasi yang sangat penting dalam PHP Ia boleh mengelakkan pengiraan berulang semasa pemprosesan data dan meningkatkan kecekapan menjalankan program. Dalam artikel ini, kami membincangkan beberapa kaedah penyahduplikasian, termasuk fungsi array_unique(), fungsi array_count_values(), gelung foreach dan fungsi array_flip() dan array_values(). Mereka masing-masing mempunyai ciri tersendiri, dan anda boleh memilih kaedah yang sesuai dengan keperluan anda.

Atas ialah kandungan terperinci Keluarkan nilai yang sama dari tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan