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

Bagaimana untuk mengalih keluar pendua daripada tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 10:20:541003semak imbas

Dalam bahasa PHP, jika kita perlu mengalih keluar pendua daripada tatasusunan, terdapat beberapa cara berbeza untuk mencapai matlamat ini. Artikel ini akan memperkenalkan beberapa kaedah dan teknik untuk membantu anda mengalih keluar pendua daripada mana-mana tatasusunan PHP.

  1. Gunakan fungsi array_unique()

Fungsi array_unique() PHP boleh mengalih keluar semua pendua dalam tatasusunan sekaligus. Fungsi ini menerima tatasusunan sebagai hujah dan mengembalikan tatasusunan unik yang mengandungi hanya nilai berbeza daripada tatasusunan asal. Sebagai contoh, coretan kod berikut menunjukkan cara menggunakan fungsi array_unique() untuk mengalih keluar pendua dalam tatasusunan $numbers:

$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_unique($numbers);
print_r($unique_numbers);

Output kod ini ialah: Tatasusunan ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 [6] => tatasusunan asal berbeza. Jika anda perlu menyusun semula tatasusunan mengikut nama kunci asal, gunakan fungsi array_values() seperti ini:

Kod ini mengeluarkan hasil yang sama, tetapi dalam kes ini, nama kunci dalam tatasusunan The susunan adalah sama, seperti: Tatasusunan ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_values(array_unique($numbers));
print_r($unique_numbers);

Menggunakan fungsi gelung dan in_array()
  1. Apabila fungsi array_unique() tidak tersedia, kita boleh menggunakan fungsi gelung dan in_array() untuk melaksanakan fungsi yang sama secara manual. Fungsi in_array() mencari kehadiran nilai dalam tatasusunan dan mengembalikan nilai Boolean yang sepadan. Menggunakan gelung yang digabungkan dengan fungsi in_array(), kita boleh melelar melalui keseluruhan tatasusunan dan hanya menyimpan nilai yang tiada dalam tatasusunan baharu.

Sebagai contoh, coretan kod berikut menunjukkan cara menggunakan teknik ini:

Output kod ini juga akan menjadi: Tatasusunan ( [0] => 1 [1] = > 2 [2] =>
$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array();
foreach($numbers as $n) {
  if (!in_array($n, $unique_numbers)) {
    $unique_numbers[] = $n;
  }
}
print_r($unique_numbers);

Sila ambil perhatian bahawa kelemahan pendekatan ini ialah ia memerlukan lebih banyak kod dan masa pemprosesan daripada menggunakan fungsi array_unique().

Gunakan fungsi array_flip() dan array_keys()
  1. Cara lain untuk mengalih keluar pendua dalam tatasusunan ialah menggunakan fungsi array_flip() dan array_keys(). Fungsi array_flip() mengembalikan tatasusunan baharu Kekunci dalam tatasusunan baharu ialah nilai dalam tatasusunan asal, dan nilainya ialah nama kunci bagi tatasusunan asal. Menggunakan kaedah ini, kami boleh mengalih keluar semua kunci yang berkaitan dengan nilai pendua dalam tatasusunan asal.

Seterusnya, kita boleh menggunakan fungsi array_keys() untuk mengembalikan tatasusunan dengan pendua dikecualikan.

Kod berikut menunjukkan cara menggunakan pendekatan ini:

Keluaran kod ini ialah: Tatasusunan ( [0] => 1 [1] => 2 [ 2] => 3 [3] => 4 [4] => 5 )
$numbers = array(1, 2, 3, 1, 4, 2, 5);
$unique_numbers = array_keys(array_flip($numbers));
print_r($unique_numbers);

Sila ambil perhatian bahawa kaedah ini hanya berfungsi untuk tatasusunan nombor atau rentetan.

Ringkasan

Tidak kira kaedah yang anda pilih, mengalih keluar pendua daripada tatasusunan PHP adalah mudah. Seperti yang dijelaskan oleh artikel ini, anda boleh mencapainya menggunakan fungsi array_unique() , gelung dan fungsi in_array(), array_flip(), dan array_keys() fungsi. Akhirnya, kaedah yang hendak dipilih mungkin bergantung pada masalah yang anda cuba selesaikan dan versi PHP yang anda gunakan dalam kod pengeluaran anda.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar 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