Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Methode zur Deduplizierung zweidimensionaler Arrays (Beibehaltung jedes Schlüsselwerts und gleichzeitiges Entfernen doppelter Elemente) – die Einzigartigkeit des zweidimensionalen Arrays

PHP-Methode zur Deduplizierung zweidimensionaler Arrays (Beibehaltung jedes Schlüsselwerts und gleichzeitiges Entfernen doppelter Elemente) – die Einzigartigkeit des zweidimensionalen Arrays

WBOY
WBOYOriginal
2016-07-30 13:30:251587Durchsuche

Für das folgende zweidimensionale Array ist eine Deduplizierung erforderlich:

$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,
                    ),
          );

1 Die Werte im eindimensionalen Array innerhalb des zweidimensionalen Arrays können nicht sein Genau das Gleiche. Löschen Sie die doppelten Elemente:

Der Code lautet wie folgt:

<?php
$arr = array(
          &#39;0&#39;=>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,
                   ),
           );
printf("Before tranform the array:<br>");   //输出原来的数组
print_r($arr);
echo "<br/>";
function more_array_unique($arr=array()){
    foreach($arr[0] as $k => $v){
        $arr_inner_key[]= $k;   //先把二维数组中的内层数组的键值记录在在一维数组中
    }
    foreach ($arras $k => $v){
        $v =join(",",$v);    //降维 用implode()也行
        $temp[$k] =$v;      //保留原来的键值 $temp[]即为不保留原来键值
    }
    printf("After split the array:<br>");
    print_r($temp);    //输出拆分后的数组
    echo"<br/>";
    $temp =array_unique($temp);    //去重:去掉重复的字符串
    foreach ($tempas $k => $v){
        $a = explode(",",$v);   //拆分后的重组 如:Array( [0] => james [1] => 30 )
        $arr_after[$k]= array_combine($arr_inner_key,$a);  //将原来的键与值重新合并
    }
    //ksort($arr_after);//排序如需要:ksort对数组进行排序(保留原键值key) ,sort为不保留key值
    return$arr_after;
}
    $arr_new = more_array_unique($arr);  //调用去重函数
    printf("Duplicate removal of the array:<br>");
    print_r($arr_new);
echo "<br/>";
?>

Ausgabeergebnis:

Vor der Transformation des Arrays: // Originalarray
Array ( [0] => Array ( [name] => james [age] => 30 ) [1 ] => Array ([name] => susu [Alter] => 26 ) [2] => Array ( [name] => james [Alter]=> 30 ) [neu] => Array ( [name] => kube [age] => 37 ) [list] =>Array ( [name] => kube [age] => 27 ) )
Nach der Aufteilung array: //Split Post Array
Array ( [0] => james,30 [1] => susu,26 [2] => james,30 [new ] =>kube,37 [list] = > kube,27 )
Duplikatentfernung des Arrays: //Array nach Duplikatentfernung
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 ) )

2. Einer innerhalb des zweidimensionalen Arrays Da ein bestimmter Schlüsselwert im dimensionalen Array nicht identisch sein kann, werden Duplikate gelöscht:

/*Deduplizierung für einen bestimmten Schlüsselwert*/

<?php
$arr= array(……);  //同上的二维数组
functionsecond_array_unique_bykey($arr, $key){
    $tmp_arr = array();
    foreach($arr as $k => $v)
    {
        if(in_array($v[$key], $tmp_arr))   //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
        {
            unset($arr[$k]); //销毁一个变量  如果$tmp_arr中已存在相同的值就删除该值
        }
        else {
            $tmp_arr[$k] = $v[$key];  //将不同的值放在该数组中保存
        }
   }
   //ksort($arr); //ksort函数对数组进行排序(保留原键值key)  sort为不保留key值
    return $arr;
   }
   $key ='name';
   $arr_key = second_array_unique_bykey($arr,$key);
   printf("As for the givenkey->%s:<br>",$key);
   print_r($arr_key);
   echo "<br/>";
?>

Ausgabeergebnisse:

Wie für den angegebenen Schlüssel->Namen:
Array ( [0] => Array ( [name] = > james [Alter] => 30 ) [1 ] => Array ([Name] => susu [Alter] => 26 ) [neu] => kube [ Alter]=> 37 ) )

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne dessen Erlaubnis reproduziert werden.

Das Obige stellt die Methode zur Deduplizierung zweidimensionaler Arrays in PHP vor (Beibehaltung jedes Schlüsselwerts und gleichzeitiges Entfernen doppelter Elemente). Ich hoffe, dass die Einzigartigkeit zweidimensionaler Arrays, einschließlich Aspekte, für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren .

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn