> 백엔드 개발 > PHP 문제 > PHP의 다차원 배열에서 중복 값을 제거하는 방법

PHP의 다차원 배열에서 중복 값을 제거하는 방법

藏色散人
풀어 주다: 2023-03-01 22:36:01
원래의
3069명이 탐색했습니다.

PHP에서 중복 값을 제거하는 방법: 먼저 기본 및 보조 배열 키를 유지할지 여부를 결정한 다음 1차원 배열을 쉼표로 연결된 문자열로 변환한 다음 마지막으로 "array_unique" 함수를 통해 중복 문자열을 제거합니다. 분할 열린 배열을 다시 조립할 수 있습니다.

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));
로그인 후 복사

더 많은 관련 지식을 보려면 다음 사이트를 방문하세요. PHP 중국어 웹사이트 !

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿