Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan nilai yang berbeza daripada tatasusunan dalam php

Bagaimana untuk mendapatkan nilai yang berbeza daripada tatasusunan dalam php

PHPz
PHPzasal
2023-04-19 11:36:26621semak imbas

Dalam pembangunan PHP, kita sering menghadapi keperluan untuk menyahduplikasi tatasusunan. Pada masa ini, kita perlu mengeluarkan nilai yang berbeza dalam tatasusunan untuk memudahkan pemprosesan data seterusnya. Berikut akan memperkenalkan beberapa kaedah biasa untuk mengekstrak nilai yang berbeza daripada tatasusunan.

Kaedah 1: Gunakan fungsi array_unique

PHP menyediakan fungsi array_unique, yang boleh mengalih keluar nilai pendua daripada tatasusunan dan mengembalikan tatasusunan baharu. Prinsip pelaksanaan fungsi ini adalah untuk melintasi tatasusunan asal dan menyimpan setiap nilai sebagai nama kunci ke dalam tatasusunan baharu Memandangkan nama kunci tidak boleh diulang, hanya satu nilai akan dikekalkan dalam tatasusunan baharu.

Berikut ialah kod sampel menggunakan fungsi array_unique:

$arr = array(1, 2, 3, 2, 4, 3);
$unique_arr = array_unique($arr);
print_r($unique_arr);

Hasil output adalah seperti berikut:

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

Seperti yang anda lihat, menggunakan array_unique fungsi mendapat penyingkiran Tatasusunan baharu nilai pendua.

Kaedah 2: Gunakan fungsi array_flip

Selain menggunakan fungsi array_unique, kita juga boleh menggunakan fungsi array_flip untuk mengalih keluar pendua. Prinsip fungsi ini adalah untuk menukar kunci dan nilai dalam tatasusunan Jika terdapat nilai pendua, nilai kemudian akan menimpa nilai sebelumnya. Kemudian tukar kekunci dan nilai kembali untuk mendapatkan tatasusunan pendua.

Berikut ialah kod sampel menggunakan fungsi array_flip:

$arr = array(1, 2, 3, 2, 4, 3);
$unique_arr = array_flip(array_flip($arr));
print_r($unique_arr);

Hasil output juga merupakan tatasusunan pendua:

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

Kaedah 3: Gunakan traversal gelung

Selain menggunakan fungsi terbina dalam PHP, kami juga boleh melaksanakan traversal gelung secara manual untuk mengalih keluar pendua. Kaedah pelaksanaan khusus adalah untuk merentasi tatasusunan asal, bandingkan setiap nilai dengan nilai yang telah dilalui sebelum ini, jika nilai yang sama sudah wujud, langkau ia, jika tidak tambahkannya pada tatasusunan baharu.

Berikut ialah kod sampel menggunakan lintasan gelung:

$arr = array(1, 2, 3, 2, 4, 3);
$unique_arr = array();

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

print_r($unique_arr);

Hasil keluaran juga merupakan tatasusunan pendua:

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

Kaedah 4: Gunakan fungsi array_diff

Selain kaedah di atas, kita juga boleh menggunakan fungsi array_diff untuk mengalih keluar pendua. Fungsi ini mengambil dua tatasusunan sebagai argumen dan akan mengembalikan nilai dalam tatasusunan pertama yang tidak ada dalam tatasusunan kedua. Oleh itu, kita boleh menghantar tatasusunan asal dan tatasusunan kosong ke fungsi untuk mendapatkan tatasusunan penyahduplikasi.

Berikut ialah kod sampel menggunakan fungsi array_diff:

$arr = array(1, 2, 3, 2, 4, 3);
$empty_arr = array();
$unique_arr = array_diff($arr, $empty_arr);

print_r($unique_arr);

Hasil output juga merupakan tatasusunan yang dinyahdua:

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

Ringkasan:

Di atas ialah beberapa cara biasa untuk mengekstrak nilai yang berbeza daripada tatasusunan. Walaupun prinsip pelaksanaan kaedah ini berbeza, semuanya boleh mengalih keluar pendua dengan berkesan. Dalam pembangunan PHP, kita boleh memilih kaedah yang sesuai untuk mengendalikan nilai yang berbeza dalam tatasusunan mengikut situasi tertentu.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai yang berbeza 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