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


Answers

//Find duplicates 

$arr = array( 
    'unique', 
    'duplicate', 
    'distinct', 
    'justone', 
    'three3', 
    'duplicate', 
    'three3', 
    'three3', 
    'onlyone' 
);

$unique = array_unique($arr); 
$dupes = array_diff_key( $arr, $unique ); 
    // array( 5=>'duplicate', 6=>'three3' 7=>'three3' )

// count duplicates

array_count_values($dupes); // array( 'duplicate'=>1, 'three3'=>2 )
Question

PHP에서 배열에서 중복 값을 제거하려면 어떻게해야합니까?




나는 어떤 기능을 사용하지 않고 이것을했다.

$arr = array("1", "2", "3", "4", "5", "4", "2", "1");

$len = count($arr);
for ($i = 0; $i < $len; $i++) {
  $temp = $arr[$i];
  $j = $i;
  for ($k = 0; $k < $len; $k++) {
    if ($k != $j) {
      if ($temp == $arr[$k]) {
        echo $temp."<br>";
        $arr[$k]=" ";
      }
    }
  }
}

for ($i = 0; $i < $len; $i++) {
  echo $arr[$i] . " <br><br>";
}



함수를 통해 수행 할 수 있습니다. 함수를 통해 수행 할 수 있습니다. 세 번째 함수 중복을 반환합니다. 배열에서 중복되는 값을 반환합니다. 두 번째 함수는 단일 값을 반환합니다. 배열과 세 번째 및 전체 함수에서 반복되지 않음을 의미합니다. 모든 값을 반환하지만 값이 중복되지는 않습니다. 그것을 하나로 변환한다.

function duplicate($arr){
    $duplicate;
    $count=array_count_values($arr);
    foreach($arr as $key=>$value){
        if($count[$value]>1){
            $duplicate[$value]=$value;
        }

    }
    return $duplicate;

}
function single($arr){
    $single;
    $count=array_count_values($arr);
    foreach($arr as $key=>$value){
        if($count[$value]==1){
            $single[$value]=$value;
        }
    }
    return $single;
}
function full($arr,$arry){
    $full=$arr+$arry;
    sort($full);
    return $full;

}

}




그것은 그것을 할 수있는 좋은 방법입니다. 출력이 다시 배열로 되돌아 가는지 확인하고 싶을 수도 있습니다. 이제 마지막 고유 값 만 보여줍니다.

이 시도:

$arrDuplicate = array ("","",1,3,"",5);

foreach (array_unique($arrDuplicate) as $v){
  if($v != "") { $arrRemoved[] = $v; }
}
print_r ($arrRemoved);



$result = array();
foreach ($array as $key => $value){
  if(!in_array($value, $result))
    $result[$key]=$value;
}



고유 하고 중복 된 항목 을 원한다면 때때로 array_unique() 가 아닙니다.

$unique=array("","A1","","A2","","A1","");
$duplicated=array();

foreach($unique as $k=>$v) {

if( ($kt=array_search($v,$unique))!==false and $k!=$kt )
 { unset($unique[$kt]);  $duplicated[]=$v; }

}

sort($unique); // optional
sort($duplicated); // optional

에 대한 결과

array ( 0 => '', 1 => 'A1', 2 => 'A2', ) /* $unique */

array ( 0 => '', 1 => '', 2 => '', 3 => 'A1', ) /* $duplicated */



explode(",", implode(",", array_unique(explode(",", $YOUR_ARRAY))));

이것은 키 연관을 처리하고 그 결과 배열을 위해 키를 직렬화합니다 :-)




    if (@!in_array($classified->category,$arr)){        
                                    $arr[] = $classified->category;
                                 ?>

            <?php } endwhile; wp_reset_query(); ?>

배열에서 처음으로 값을 확인하고 동일한 값을 찾지 못했습니다.




function arrayUnique($myArray)
{
    $newArray = Array();
    if (is_array($myArray))
    {
        foreach($myArray as $key=>$val)
        {
            if (is_array($val))
            {
                $val2 = arrayUnique($val);
            }
            else
            {
                $val2 = $val;
                $newArray=array_unique($myArray);
                $newArray=deleteEmpty($newArray);
                break;
            }
            if (!empty($val2))
            {
                $newArray[$key] = $val2;
            }
        }
    }
    return ($newArray);
}

function deleteEmpty($myArray)
{
    $retArray= Array();
    foreach($myArray as $key=>$val)
    {
        if (($key<>"") && ($val<>""))
        {
            $retArray[$key] = $val;
        }
    }
    return $retArray;
}



Links