Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengalih keluar tatasusunan dengan nilai yang sama dalam php

Bagaimana untuk mengalih keluar tatasusunan dengan nilai yang sama dalam php

PHPz
Lepaskan: 2023-04-24 15:57:00
asal
632 orang telah melayarinya

Memanipulasi tatasusunan ialah tugas biasa dalam pembangunan PHP. Tetapi jika terdapat unsur pendua dalam tatasusunan, anda perlu menggunakan beberapa kaedah untuk mengalih keluar pendua. Artikel ini akan menunjukkan kepada anda cara mengalih keluar tatasusunan dengan nilai yang sama menggunakan PHP.

  1. Gunakan fungsi array_unique()

fungsi array_unique() ialah fungsi deduplikasi PHP sendiri, yang boleh mengalih keluar elemen yang sama dengan mudah adalah seperti berikut:

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

Perihalan parameter:

  • $array (diperlukan): tatasusunan untuk mengalih keluar pendua.
  • $sort_flags (pilihan): Parameter pilihan yang menunjukkan cara mengisih tatasusunan. Lalai ialah SORT_STRING, yang membandingkan dengan rentetan.

Kaedah penggunaan adalah seperti berikut:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array_unique($originalArray);
print_r($uniqueArray);

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

Ia boleh dilihat bahawa fungsi array_unique() boleh dengan mudah mengeluarkan elemen pendua dalam tatasusunan dan mengekalkan elemen bukan pendua.

  1. Gunakan gelung untuk mengalih keluar pendua

Selain fungsi array_unique(), anda juga boleh menggunakan gelung untuk mengalih keluar pendua. Seluruh proses adalah seperti ini: lelaran melalui tatasusunan asal, bandingkan setiap elemen, dan jika elemen yang sama ditemui, tapiskannya.

Kod operasi khusus adalah seperti berikut:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$uniqueArray = array();

foreach($originalArray as $value){
    if(!in_array($value, $uniqueArray)){
        $uniqueArray[] = $value;
    }
}

print_r($uniqueArray);

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

Kaedah ini perlu merentasi keseluruhan tatasusunan Apabila tatasusunan besar, ia tidak secekap fungsi array_unique().

  1. Gunakan fungsi array_flip() dan array_keys()

Menggunakan kaedah ini memerlukan langkah pertama untuk menukar nilai dan kunci tatasusunan, iaitu , tatasusunan asal Tukar kepada tatasusunan baharu dengan nilai sebagai kunci dan kunci sebagai nilai. Ini boleh dicapai menggunakan fungsi array_flip().

Seterusnya, anda boleh menggunakan fungsi array_keys() untuk mendapatkan semua kunci tatasusunan baharu, iaitu elemen bukan pendua. Kod khusus adalah seperti berikut:

$originalArray = array('a', 'b', 'c', 'a', 'b');
$newArray = array_flip($originalArray);
$uniqueArray = array_keys($newArray);

print_r($uniqueArray);

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

Menggunakan kaedah ini, walaupun tatasusunan asal adalah besar, kecekapannya sangat tinggi.

Ringkasnya, terdapat banyak cara untuk mengalih keluar tatasusunan dengan nilai yang sama dalam PHP, dan anda boleh memilih kaedah yang hendak digunakan mengikut situasi sebenar. Sudah tentu, jika elemen tatasusunan adalah jenis kompleks seperti objek, fungsi array_unique() mungkin tidak berfungsi. Dalam kes ini, anda boleh mencapai penyahduplikasian melalui kaedah seperti fungsi perbandingan tersuai.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar tatasusunan dengan nilai yang sama 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