Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengalih keluar medan pendua daripada tatasusunan dalam php

Bagaimana untuk mengalih keluar medan pendua daripada tatasusunan dalam php

PHPz
Lepaskan: 2023-04-18 15:10:08
asal
619 orang telah melayarinya

Dalam PHP, tatasusunan ialah salah satu struktur data yang biasa digunakan. Untuk sesetengah senario aplikasi yang perlu memproses data, selalunya perlu mengalih keluar medan pendua dalam tatasusunan. Berikut adalah beberapa kaedah dan teknik biasa.

1. Gunakan fungsi array_unique

Fungsi array_unique ialah salah satu fungsi terbina dalam PHP yang boleh mengalih keluar nilai pendua dari array. Penggunaannya sangat mudah:

$array = array('a', 'b', 'c', 'b', 'a');
$result = array_unique($array);
print_r($result);
Salin selepas log masuk

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

2 Gunakan fungsi array_flip dan array_keys untuk mencapai penyahduplikasi

Fungsi array_flip boleh menukar. tatasusunan ke dalam Kekunci dan nilai ditukar ganti, dan fungsi array_keys boleh mengembalikan semua nilai kunci dalam tatasusunan. Oleh itu, kita boleh menggabungkan kedua-dua fungsi ini untuk mencapai penduaan tatasusunan:

$array = array('a', 'b', 'c', 'b', 'a');
$result = array_flip(array_flip($array));
print_r($result);
Salin selepas log masuk

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

3 Gunakan gelung foreach untuk menyahduplikasi

Gunakan foreach Gelung boleh merentasi tatasusunan dan menggunakan keunikan subskrip tatasusunan untuk mencapai penduaan:

$array = array('a', 'b', 'c', 'b', 'a');
$temp = array();
foreach ($array as $value) {
  $temp[$value] = true;
}
$result = array_keys($temp);
print_r($result);
Salin selepas log masuk

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

4 Gunakan fungsi in_array untuk menentukan pendua

Apabila menggunakan gelung foreach untuk melintasi tatasusunan, kita boleh menggabungkannya dengan fungsi in_array untuk menentukan sama ada nilai semasa sudah wujud dalam tatasusunan hasil untuk mencapai penyahduplikasian:

$array = array('a', 'b', 'c', 'b', 'a');
$temp = array();
foreach ($array as $value) {
  if (!in_array($value, $temp)) {
    $temp[] = $value;
  }
}
print_r($temp);
Salin selepas log masuk

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

5. Gunakan fungsi array_reduce untuk mencapai penyahduplikasian

Fungsi array_reduce boleh melelar dan mengumpul elemen dalam tatasusunan Kita boleh menggabungkannya dengan fungsi in_array untuk mencapai tatasusunan deduplikasi:

$array = array('a', 'b', 'c', 'b', 'a');
$result = array_reduce($array, function($carry, $item) {
  if (!in_array($item, $carry)) {
    $carry[] = $item;
  }
  return $carry;
}, array());
print_r($result);
Salin selepas log masuk

Hasilnya ialah :

Array
(
    [0] => a
    [1] => b
    [2] => c
)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Di atas adalah beberapa kaedah untuk mengalih keluar medan pendua daripada tatasusunan dalam PHP Kaedah yang berbeza mempunyai kelebihan dan kekurangannya sendiri, dan anda boleh memilih untuk menggunakannya mengikut situasi sebenar.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar medan pendua daripada tatasusunan dalam 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