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

Bagaimana untuk mengalih keluar medan pendua daripada tatasusunan dalam php

PHPz
PHPzasal
2023-04-18 14:08:28542semak imbas

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

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

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

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

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

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

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

Hasilnya ialah:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

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

Hasilnya ialah :

Array
(
    [0] => a
    [1] => b
    [2] => c
)

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!

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