Rumah >pembangunan bahagian belakang >tutorial php >Petua untuk mengendalikan nilai kosong dan nilai nol apabila menyahduplikasi tatasusunan PHP

Petua untuk mengendalikan nilai kosong dan nilai nol apabila menyahduplikasi tatasusunan PHP

王林
王林asal
2024-04-26 17:03:01424semak imbas

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.

PHP 数组去重时处理空值和 null 值的技巧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);

    Gunakan array_reduce fungsi:
    1. $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;
    }, []);
    1. 使用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);
    1. 使用array_reduceKes praktikal

    Contoh berikut menunjukkan menggunakan teknik pertama untuk menapis dan menyahduplikasi tatasusunan yang mengandungi nilai kosong dan nol:

    Array
    (
        [0] => Array
            (
                [name] => John Doe
                [age] => 30
            )
        [1] => Array
            (
                [name] => Jane Doe
                [age] => 25
            )
    )

    Output:

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!

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