Heim > Backend-Entwicklung > PHP-Problem > So entfernen Sie doppelte Daten in PHP

So entfernen Sie doppelte Daten in PHP

藏色散人
Freigeben: 2023-03-15 06:40:02
Original
2333 Leute haben es durchsucht

So entfernen Sie doppelte Daten in PHP: 1. Entfernen Sie doppelte Daten aus einem eindimensionalen Array mit der Funktion array_unique. 2. Entfernen Sie doppelte Daten aus einem mehrdimensionalen Array mit der benutzerdefinierten Methode unique_arr.

So entfernen Sie doppelte Daten in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

php Wie entferne ich doppelte Daten? „PHP entfernt doppelte Array-Daten.“ wird bereitgestellt Die array_unique-Funktion eines zweidimensionalen Arrays

<?php
$input = array("a" => "green","", "red","b" => "green", "","blue", "red","c" => "witer","hello","witer");
//$result = array_unique($input); //去除重复元素
$result = a_array_unique($input);   //只留下单一元素
foreach($result as $aa)
{
echo $aa."<br />";
}
function multi_unique($array) {
   foreach ($array as $k=>$na)
       $new[$k] = serialize($na);
   $uniq = array_unique($new);
   foreach($uniq as $k=>$ser)
       $new1[$k] = unserialize($ser);
   return ($new1);
}
function a_array_unique($array)//写的比较好
{
   $out = array();
   foreach ($array as $key=>$value) {
       if (!in_array($value, $out))
{
           $out[$key] = $value;
       }
   }
   return $out;
}
?>
Nach dem Login kopieren

Demonstration:

function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
    // 判断是否保留一级数组键 (一级数组键可以为非数字)
    if($stkeep) $stArr = array_keys($array2D);
    // 判断是否保留二级数组键 (所有二级数组键必须相同)
    if($ndformat) $ndArr = array_keys(end($array2D));
    //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    foreach ($array2D as $v){
        $v = join(",",$v);
        $temp[] = $v;
    }
    //去掉重复的字符串,也就是重复的一维数组
    $temp = array_unique($temp);
    //再将拆开的数组重新组装
    foreach ($temp as $k => $v)
    {
        if($stkeep) $k = $stArr[$k];
        if($ndformat)
        {
            $tempArr = explode(",",$v);
            foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
        }
        else $output[$k] = explode(",",$v);
    }
    return $output;
}
Nach dem Login kopieren

Methode 2:

Beispiel 1

Ein eindimensionales PHP-Array entfernt Duplikate (mithilfe der array_unique-Funktion).

Beispiel 1, Code:

$array2D = array(&#39;first&#39;=>array(&#39;title&#39;=>&#39;1111&#39;,&#39;date&#39;=>&#39;2222&#39;),&#39;second&#39;=>array(&#39;title&#39;=>&#39;1111&#39;,&#39;date&#39;=>&#39;2222&#39;),&#39;third&#39;=>array(&#39;title&#39;=>&#39;2222&#39;,&#39;date&#39;=>&#39;3333&#39;));  
print_r($array2D);  
print_r(unique_arr($array2D,true));
Nach dem Login kopieren

Ausgabeergebnis:

<?php
 $aa=array("apple","banana","pear","apple","wail","watermalon");
  $bb=array_unique($aa);
   print_r($bb);
?>
Nach dem Login kopieren

Zweitens doppelte Elemente eines zweidimensionalen PHP-Arrays:

Bei zweidimensionalen Arrays werden wir zwei Situationen diskutieren. Eine davon ist der Wert eines bestimmten Schlüssels Name kann nicht dupliziert werden, Duplikate löschen;

Eine andere Möglichkeit besteht darin, Duplikate zu löschen, da das interne eindimensionale Array nicht genau gleich sein kann.

Beispiel 1: Da der Wert eines bestimmten Schlüsselnamens nicht wiederholt werden kann, löschen Sie die Duplikate.

Code:

Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon )
Nach dem Login kopieren

Ausgabeergebnis:

<?php
  function assoc_unique($arr, $key)
   {
     $tmp_arr = array();
     foreach($arr as $k => $v)
    {
       if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
      { // www.jbxue.com
         unset($arr[$k]);
      }
    else {
        $tmp_arr[] = $v[$key];
      }
    }
  sort($arr); //sort函数对数组进行排序
  return $arr;
  }
  $aa = array(
  array(&#39;id&#39; => 123, &#39;name&#39; => &#39;张三&#39;),
  array(&#39;id&#39; => 123, &#39;name&#39; => &#39;李四&#39;),
  array(&#39;id&#39; => 124, &#39;name&#39; => &#39;王五&#39;),
  array(&#39;id&#39; => 125, &#39;name&#39; => &#39;赵六&#39;),
  array(&#39;id&#39; => 126, &#39;name&#39; => &#39;赵六&#39;)
  );
  $key = &#39;id&#39;;
  assoc_unique(&$aa, $key);
  print_r($aa);
  ?>
Nach dem Login kopieren

Beispiel 2: Da das interne eindimensionale Array nicht genau gleich sein kann, werden doppelte Elemente gelöscht.

Code:

Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 )
[3] => Array ( [id] => 126 [name] => 赵六 ) )
Nach dem Login kopieren

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo entfernen Sie doppelte Daten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage