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

Bolehkah php mengalih keluar nilai pendua daripada tatasusunan?

PHPz
PHPzasal
2023-04-27 15:54:30402semak imbas

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 ] )

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);

Hasil output ialah:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

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);

Hasil keluaran ialah:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

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);

Hasil keluaran ialah:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

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);

Hasil output ialah:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

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);

Hasil output ialah:

Array
(
    [1] => 2
    [4] => 4
)

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);

Hasil output ialah:

Array
(
    [0] => 1
    [1] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

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!

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