Petua untuk mengendalikan nilai kosong dan nol semasa menyahduplikasi tatasusunan PHP: Gunakan array_unique dengan array_filter untuk menapis nilai kosong dan nol. Gunakan array_unique dan tentukan fungsi perbandingan tersuai yang menganggap nilai null dan null sebagai sama. Gunakan array_reduce untuk mengulangi tatasusunan dan tambah item jika ia tidak mengandungi nilai kosong atau nol. . Secara lalai, rentetan kosong dan nilai nol dianggap sebagai nilai yang berbeza, yang boleh membawa kepada pendua yang tidak dijangka.
Tips
Tiga teknik biasa untuk mengendalikan nilai kosong dan nol:
Gunakan fungsi array_unique
dengan fungsi array_filter
:
start="2">
Gunakan fungsi array_unique
dan tentukan fungsi perbandingan tersuai:
$arr = ['red', 'blue', 'green', null, '', 'red']; $filtered_arr = array_filter($arr); $result = array_unique($filtered_arr);
array_reduce
fungsi: $arr = ['red', 'blue', 'green', null, '', 'red']; function cmp($a, $b) { return $a === $b; } $result = array_unique($arr, SORT_REGULAR, 'cmp');
array_unique
函数搭配array_filter
函数:$arr = ['red', 'blue', 'green', null, '', 'red']; $result = array_reduce($arr, function($carry, $item) { if (!in_array($item, $carry) || $item !== '') { $carry[] = $item; } return $carry; }, []);
array_unique
函数并定义自定义比较函数:$users = [ ['name' => 'John Doe', 'age' => 30], ['name' => 'Jane Doe', 'age' => 25], ['name' => 'John Doe', 'age' => 30], // 重复项 ['name' => null, 'age' => null], // 空值 ]; $unique_users = array_filter($users); $unique_users = array_unique($unique_users); print_r($unique_users);
array_reduce
Kes praktikalContoh berikut menunjukkan menggunakan teknik pertama untuk menapis dan menyahduplikasi tatasusunan yang mengandungi nilai kosong dan nol: Atas ialah kandungan terperinci Petua untuk mengendalikan nilai kosong dan nilai nol apabila menyahduplikasi tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!Array
(
[0] => Array
(
[name] => John Doe
[age] => 30
)
[1] => Array
(
[name] => Jane Doe
[age] => 25
)
)