>  기사  >  백엔드 개발  >  PHP array_unique는 2차원 배열 중복 제거를 구현합니다.

PHP array_unique는 2차원 배열 중복 제거를 구현합니다.

coldplay.xixi
coldplay.xixi앞으로
2020-07-15 17:16:163545검색

<img src="https://img.php.cn/upload/article/202007/15/2020071517144631020.jpg" alt="PHP array_unique는 2차원 배열 중복 제거를 구현합니다." ><img src="https://img.php.cn/upload/article/202007/15/2020071517144631020.jpg" alt="PHP array_unique는 2차원 배열 중복 제거를 구현합니다." >

array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子。

php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数

一维数组的重复项:

使用array_unique函数即可,使用实例如下:

代码如下

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

二维数组去重项

代码如下

例如:

$result = array(
0=>array('a'=>1,'b'=>'Hello'),
1=>array('a'=>1,'b'=>'other'),
2=>array('a'=>1,'b'=>'other'),
);

处理成

$result = array(
0=>array('a'=>1,'b'=>'Hello'),
1=>array('a'=>1,'b'=>'other')
);

使用方法

array_unique($result, SORT_REGULAR);
array_unique 함수는 괜찮습니다 물론 이 함수도 있습니다. array_unique를 사용하여 2차원 배열을 중복 제거하는 PHP의 예를 살펴보겠습니다.

php 버전 5.2.9에는 다차원 배열에 대한 array_unique 지원이 추가되었습니다. 다차원 배열을 처리할 때 sort_flags 매개변수를 설정해야 합니다.

1차원 배열의 중복:

array_unique 함수를 사용하는데, 사용 예는 다음과 같습니다.

코드는 다음과 같습니다

<?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
      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] => apple [1] => 바나나 [ 2] => 배 [4] => 통곡 [5] => watermalon )

2차원 배열 중복 제거

코드는 다음과 같습니다

예:

$result = array(🎜0=>array('a'=> 1,'b'=>'안녕하세요'),🎜1=>array('a'=>1,'b'=> 'other'),🎜2=>array('a'= >1,'b'=>'other'),🎜);🎜🎜🎜🎜는 🎜🎜🎜$result = array(🎜)로 처리됩니다. 0=>array('a'=>1,'b' =>'안녕하세요'),🎜1=>array('a'=>1,'b'=>'기타') 🎜);🎜🎜🎜🎜Usage🎜🎜array_unique($ result, SORT_REGULAR);🎜🎜🎜2차원 배열의 중복:🎜🎜2차원 배열의 경우 두 가지 상황에 대해 논의합니다. 특정 키 이름의 값은 반복될 수 없으며, 다른 하나는 내부 1차원 배열이 정확히 동일할 수 없기 때문에 중복된 항목을 삭제하는 것입니다. 🎜🎜㈠ 왜냐하면 특정 키 이름의 값은 반복될 수 없으므로 중복 항목을 삭제합니다 🎜🎜PHP 코드는 다음과 같습니다 🎜
Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )
🎜표시된 결과는 다음과 같습니다. 🎜
<?php

function array_unique_fb($array2D) {
  foreach ($array2D as $v) {
    $v = join(",", $v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    $temp[] = $v;
  }
  $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)
?>
🎜내부 1차원 배열이 완전히 동일할 수 없으므로 중복 항목은 삭제됩니다🎜 🎜코드는 다음과 같습니다🎜
Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) )
🎜표시 결과:🎜rrreee🎜🎜관련 학습 권장 사항:🎜PHP 프로그래밍 입문부터 숙련까지🎜🎜🎜

위 내용은 PHP array_unique는 2차원 배열 중복 제거를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제