Mengalih keluar Pendua daripada Tatasusunan PHP Berbilang Dimensi
Dalam PHP, bekerja dengan tatasusunan berbilang dimensi selalunya melibatkan keperluan untuk menghapuskan elemen pendua. Ini amat berguna apabila berurusan dengan set data yang besar di mana nilai yang sama mungkin muncul dalam berbilang sub-tatasusunan.
Pertimbangkan contoh berikut, di mana kami mempunyai tatasusunan 2D dengan sub-tatasusunan yang mengandungi nama, e-mel dan maklumat lain :
$array = [ [ 'name' => 'Dave', 'email' => 'dave@example.com', ], [ 'name' => 'John', 'email' => 'john@example.com', ], [ 'name' => 'Bruce', 'email' => 'bruce@example.com', ], [ 'name' => 'John', 'email' => 'john@example.com', ], ];
Dalam contoh ini, kami mempunyai entri pendua dengan alamat e-mel yang sama ('john@example.com'). Untuk mengalih keluar sub-tatasusunan pendua, kami boleh menggunakan keunikan indeks tatasusunan menggunakan coretan berikut:
$newArr = []; foreach ($array as $val) { $newArr[$val['email']] = $val; } $array = array_values($newArr);
Dengan mengulangi sub-tatasusunan dan menggunakan alamat e-mel sebagai kunci untuk tatasusunan baharu, kami menimpa sebarang nilai pendua dengan sub-tatasusunan terakhir yang sepadan. Fungsi array_values() kemudiannya digunakan untuk menetapkan semula indeks tatasusunan, menghasilkan tatasusunan nyahduplikasi:
$array = [ [ 'name' => 'Dave', 'email' => 'dave@example.com', ], [ 'name' => 'John', 'email' => 'john@example.com', ], [ 'name' => 'Bruce', 'email' => 'bruce@example.com', ], ];
Teknik ini dengan berkesan mengalih keluar nilai pendua berdasarkan kunci yang ditentukan, meninggalkan kita dengan tatasusunan berbilang dimensi yang dinyahgandakan .
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengalih keluar Sub-array Pendua daripada Tatasusunan PHP Berbilang Dimensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!