Rumah > pembangunan bahagian belakang > masalah PHP > Bolehkah php mengalih keluar nilai pendua daripada tatasusunan?

Bolehkah php mengalih keluar nilai pendua daripada tatasusunan?

PHPz
Lepaskan: 2023-04-27 16:14:54
asal
424 orang telah melayarinya

Dalam proses menulis program PHP, kita selalunya perlu menyahganda tatasusunan. Tujuan deduplikasi adalah untuk mengelakkan gangguan daripada data pendua dan untuk meningkatkan prestasi program dengan berkesan. Untuk PHP, mengalih keluar nilai pendua daripada tatasusunan ialah operasi yang sangat asas Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai fungsi ini.

1. Gunakan fungsi array_unique()

PHP menyediakan fungsi yang dipanggil array_unique(), yang boleh mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu. Berikut ialah sintaks asas bagi fungsi array_unique():

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Salin selepas log masuk

Penerangan parameter:

  • $array: parameter yang diperlukan, tatasusunan untuk mengalih keluar nilai pendua.
  • $sort_flags: Parameter pilihan, digunakan untuk menentukan kaedah pengisihan tatasusunan. Lalai ialah SORT_STRING, yang diisih mengikut jenis rentetan.

Berikut ialah contoh:

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

Hasil output ialah:

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

2. Gunakan nilai kekunci untuk menetapkan semula tatasusunan

Selain menggunakan fungsi array_unique(), kami juga boleh mengalih keluar pendua melalui nilai kunci dan menetapkan semula tatasusunan kepada tatasusunan baharu. Berikut ialah contoh:

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

Hasil keluaran ialah:

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

3 Gunakan loop traversal

Selain daripada dua kaedah di atas, kita juga boleh menggunakan loop traversal. Lakukan deduplikasi. Idea asas kaedah ini ialah: mula-mula buat tatasusunan kosong, dan kemudian gelung setiap elemen dalam tatasusunan asal Jika elemen itu tiada dalam tatasusunan baharu, tambahkannya pada tatasusunan baharu. Berikut ialah kod contoh:

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

Hasil keluaran ialah:

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

4 Gunakan fungsi array_reduce()

array_reduce() fungsi digunakan untuk mengurangkan elemen tatasusunan secara berulang. menjadi nilai tunggal. Menggunakan fungsi ini, kita boleh mengalih keluar elemen pendua dengan mudah daripada tatasusunan. Berikut ialah kod sampel:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_reduce($arr, function($carry, $item){
    if(!in_array($item, $carry)){
        $carry[] = $item;
    }
    return $carry;
}, []);
print_r($new_arr);
Salin selepas log masuk

Hasil output ialah:

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

5 Gunakan fungsi array_diff() Fungsi

array_diff() digunakan untuk membandingkan. set perbezaan tatasusunan. Menggunakan fungsi ini, kita boleh mengalih keluar elemen pendua dengan cepat daripada tatasusunan. Berikut ialah kod sampel:

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

Hasil output ialah:

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

6. Gunakan fungsi array_filter()

array_filter() fungsi digunakan untuk menapis elemen dalam tatasusunan. Menggunakan fungsi ini, kita boleh mengalih keluar elemen pendua dengan cepat daripada tatasusunan. Berikut ialah kod sampel:

$arr = array(1, 2, 2, 3, 4, 4, 5);
$new_arr = array_filter($arr, function($value, $key){
    return !in_array($value, array_slice($arr, 0, $key, true));
}, ARRAY_FILTER_USE_BOTH);
print_r($new_arr);
Salin selepas log masuk

Hasil output ialah:

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

Ringkasan

Artikel ini memperkenalkan pelbagai kaedah dalam PHP untuk mengalih keluar nilai pendua ​​​​daripada tatasusunan menggunakan kaedah ini boleh menjadikan Kami menulis atur cara PHP dengan lebih cekap. Sama ada ia menggunakan fungsi array_unique() atau menetapkan semula tatasusunan menggunakan nilai utama, atau gelung melalui, menggunakan fungsi array_reduce(), fungsi array_diff() atau fungsi array_filter(), selagi anda menguasai prinsip asas dan kaedah aplikasi, anda boleh melaksanakan sepenuhnya operasi penyahduplikasian tatasusunan dengan mudah.

Atas ialah kandungan terperinci Bolehkah php mengalih keluar nilai pendua daripada tatasusunan?. 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