>  기사  >  백엔드 개발  >  PHP에서 중복 데이터를 제거하는 방법

PHP에서 중복 데이터를 제거하는 방법

藏色散人
藏色散人원래의
2022-01-27 09:23:142330검색

PHP에서 중복 데이터를 제거하는 방법: 1. array_unique 함수를 통해 1차원 배열에서 중복 데이터를 제거합니다. 2. 사용자 정의 Unique_arr 메서드를 통해 다차원 배열에서 중복 데이터를 제거합니다.

PHP에서 중복 데이터를 제거하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

php 중복된 데이터를 제거하는 방법은 무엇입니까?

PHP는 중복된 배열 데이터를 제거합니다

<?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;
}
?>

PHP 배열에는 중복을 제거하는 array_unique() 함수가 내장되어 있지만, PHP의 array_unique 함수는 다차원 배열이 아닌 1차원 배열에만 적용됩니다. 2차원 배열의 array_unique 함수

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;
}

데모:

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

방법 2:

예제 1

하나, PHP 1차원 배열은 중복을 제거합니다( array_unique 함수).

예제 1, 코드:

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

출력 결과:

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

두 번째, PHP 2차원 배열의 중복 항목:

2차원 배열의 경우, 하나는 특정 키의 값 때문에 두 가지 상황을 논의하겠습니다. 이름은 중복될 수 없으며 중복된 항목은 삭제됩니다.

또 다른 방법은 내부 1차원 배열이 정확히 동일할 수 없기 때문에 중복된 항목을 삭제하는 것입니다.

예제 1, 특정 키 이름의 값은 중복될 수 없으므로 중복된 항목을 삭제합니다.

코드:

<?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);
  ?>

출력 결과:

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

예제 2의 경우 내부 1차원 배열이 완전히 동일할 수 없으므로 중복된 항목은 삭제됩니다.

코드:

<?php
  function array_unique_fb($array2D){
       foreach ($array2D as $v){
           $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
           $temp[] = $v;
       } // www.jbxue.com
       $temp = array_unique($temp);    //去掉重复的字符串,也就是重复的一维数组
      foreach ($temp as $k => $v){
          $temp[$k] = explode(",",$v);   //再将拆开的数组重新组装
      }
      return $temp;
  }
  $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; => 123, &#39;name&#39; => &#39;李四&#39;),
  array(&#39;id&#39; => 126, &#39;name&#39; => &#39;赵六&#39;)
  );
  $bb=array_unique_fb($aa);
  print_r($bb)
  ?>
Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] =>
126 [1] => 赵六 ) )

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 중복 데이터를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.