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

Bagaimana untuk mengalih keluar elemen pendua daripada tatasusunan dua dimensi dalam php

PHPz
PHPzasal
2023-04-26 14:21:10802semak imbas

Dalam PHP, tatasusunan dua dimensi ialah jenis data yang sangat biasa. Walau bagaimanapun, apabila kita berhadapan dengan tatasusunan dua dimensi yang mengandungi elemen berulang, bagaimana untuk mengalih keluar elemen berulang? Artikel ini akan memperkenalkan dua kaedah yang biasa digunakan untuk membantu anda menangani masalah ini dengan mudah.

Kaedah 1: Gunakan fungsi array_unique()

Fungsi array_unique() ialah fungsi PHP sendiri yang boleh mengalih keluar elemen pendua daripada tatasusunan. Walau bagaimanapun, fungsi ini hanya berfungsi dengan tatasusunan satu dimensi. Jadi, bagaimana anda menggunakan ini pada tatasusunan 2D?

Kita boleh menggunakan fungsi array_unique() pada setiap sub-array tatasusunan dua dimensi dengan bantuan fungsi array_map(), seperti yang ditunjukkan di bawah:

// 定义一个包含重复元素的二维数组
$arr = array(
    array("name" => "张三", "age" => 20),
    array("name" => "李四", "age" => 20),
    array("name" => "张三", "age" => 25),
    array("name" => "王五", "age" => 30),
    array("name" => "李四", "age" => 25)
);

// 去除重复元素
$arr = array_map("unserialize", array_unique(array_map("serialize", $arr)));

print_r($arr);

Dalam kod di atas, kita mula-mula Gunakan fungsi array_map() untuk menggunakan fungsi array_unique() pada setiap sub-array tatasusunan dua dimensi, dan kemudian gunakan array_map() fungsi untuk menyahsirikannya untuk mendapatkan tatasusunan dua dimensi terakhir.

Kaedah 2: Gunakan gelung foreach

Selain kaedah di atas, kita juga boleh menggunakan gelung foreach untuk memproses elemen berulang dalam tatasusunan dua dimensi.

Kaedah khusus ialah: mula-mula tentukan tatasusunan kosong baharu, dan kemudian gunakan gelung foreach untuk merentasi setiap sub-tatasusunan dalam tatasusunan asal untuk menentukan sama ada ia muncul dalam tatasusunan baharu, dan jika tidak, tambahkannya ke dalam tatasusunan baharu. Kodnya adalah seperti berikut:

// 定义一个包含重复元素的二维数组
$arr = array(
    array("name" => "张三", "age" => 20),
    array("name" => "李四", "age" => 20),
    array("name" => "张三", "age" => 25),
    array("name" => "王五", "age" => 30),
    array("name" => "李四", "age" => 25)
);

// 去除重复元素
$newArr = array();
foreach ($arr as $value) {
    if (!in_array($value, $newArr)) {
        $newArr[] = $value;
    }
}

print_r($newArr);

Dalam kod di atas, kami menggunakan fungsi in_array() untuk menentukan sama ada setiap subarray telah muncul dalam tatasusunan baharu. Jika tidak, tambahkannya pada tatasusunan baharu tengah.

Ringkasan

Elemen pendua dalam tatasusunan dua dimensi ialah masalah yang sering kita hadapi dalam pembangunan. Artikel ini memperkenalkan dua kaedah yang biasa digunakan: menggunakan fungsi array_unique() dan menggunakan gelung foreach saya harap ia dapat membantu semua orang menangani masalah ini dengan mudah. Tidak kira kaedah yang digunakan, ia perlu dipilih mengikut situasi sebenar untuk mencapai hasil yang terbaik.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar elemen pendua daripada tatasusunan dua dimensi 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