php怎麼去除重複值

2022-10-21 10:00:45

php去除重複值的方法:1、使用「function more_array_unique($arr=array()){...}」去除有多個value陣列;2、通過「$arr_new = more_array_unique($arr);」方式呼叫去重函數;3、輸出去重後的陣列即可。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。

php怎麼去除重複值?

php去除陣列中重複值,並返回結果!

array_unique(array) 只能處理value只有單個的陣列。

去除有多個value陣列,可以使用如下函數實現:

function more_array_unique($arr=array()){  
    foreach($arr[0] as $k => $v){  
        $arr_inner_key[]= $k;   //先把二維陣列中的內層陣列的鍵值記錄在在一維陣列中  
    }  
    foreach ($arr as $k => $v){  
        $v =join(",",$v);    //降維 用implode()也行  
        $temp[$k] =$v;      //保留原來的鍵值 $temp[]即為不保留原來鍵值  
    }  
    $temp =array_unique($temp);    //去重:去掉重複的字串  
    foreach ($temp as $k => $v){  
        $a = explode(",",$v);   //拆分後的重組 如:Array( [0] => james [1] => 30 )  
        $arr_after[$k]= array_combine($arr_inner_key,$a);  //將原來的鍵與值重新合併  
    }  
    return $arr_after;  
}
登入後複製

有如下陣列:

 $arr = array(  
          '0'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ),  
          '1'=>array(  
                   'name'=>'susu',  
                   'age'=>26,  
                   ),  
           '2'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ),  
           'new'=>array(  
                   'name'=>'kube',  
                   'age'=>37,  
                   ),  
           'list'=>array(  
                   'name'=>'kube',  
                   'age'=>27,  
                   ),  
           '435'=>array(  
                   'name'=>'susu',  
                   'age'=>26,  
                   ),
            '33'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ), 
           );
登入後複製

呼叫函數後顯示:

Array
(
    [0] => Array
        (
            [name] => james
            [age] => 30
        )
    [1] => Array
        (
            [name] => susu
            [age] => 26
        )
    [new] => Array
        (
            [name] => kube
            [age] => 37
        )
    [list] => Array
        (
            [name] => kube
            [age] => 27
        )
)
登入後複製

測試Demo如下:

<?php
 $arr = array(  
          '0'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ),  
          '1'=>array(  
                   'name'=>'susu',  
                   'age'=>26,  
                   ),  
           '2'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ),  
           'new'=>array(  
                   'name'=>'kube',  
                   'age'=>37,  
                   ),  
           'list'=>array(  
                   'name'=>'kube',  
                   'age'=>27,  
                   ),  
           '435'=>array(  
                   'name'=>'susu',  
                   'age'=>26,  
                   ),
            '33'=>array(  
                   'name'=>'james',  
                   'age'=>30,  
                   ), 
           );  
printf("原來的陣列:<br><pre>");   //輸出原來的陣列  
print_r($arr);  
echo "</pre><br/>";   
function more_array_unique($arr=array()){  
    foreach($arr[0] as $k => $v){  
        $arr_inner_key[]= $k;   //先把二維陣列中的內層陣列的鍵值記錄在在一維陣列中  
    }  
    foreach ($arr as $k => $v){  
        $v =join(",",$v);    //降維 用implode()也行  
        $temp[$k] =$v;      //保留原來的鍵值 $temp[]即為不保留原來鍵值  
    }  
    $temp =array_unique($temp);    //去重:去掉重複的字串  
    foreach ($temp as $k => $v){  
        $a = explode(",",$v);   //拆分後的重組 如:Array( [0] => james [1] => 30 )  
        $arr_after[$k]= array_combine($arr_inner_key,$a);  //將原來的鍵與值重新合併  
    }  
    return $arr_after;  
}  
    $arr_new = more_array_unique($arr);  //呼叫去重函數  
    printf("去除重複元素後的陣列:<br>");  
    
    echo '<pre>';
    print_r($arr_new);  
    echo "</pre><br/>";  
?>
登入後複製

推薦學習:《》

以上就是php怎麼去除重複值的詳細內容,更多請關注TW511.COM其它相關文章!