2013-05-15 2 views
2

많은 질문과 답변을 찾았지만 필요한 항목과 일치하지 않습니다. 나는이게 비슷하거나/this question과 같다고 생각하지만,이 경우에는 왜 작동하지 않는지 모릅니다. 따라서 중복을 판단하기 전에 시도하십시오, 감사합니다.PHP는 중복 된 값을 제거하고 다차원 배열에서 정확히 UNIQUE를 제거합니다.

어레이 소스

$avar = array(
0 => array(1,2,3,4,5,6,7,8,9), 
1 => array(10,11,12,13,14,15,16,17,7,8,9,10), 
23 => array(21,22,23,4,5,6,7,11,12,13,14,15,21)); 

원하는 결과

$avar = array(
0 => array(1,2,3,4,5,6,7,8,9), 
1 => array(10,11,12,13,14,15,16,17), 
23 => array(21,22,23)); 

PHP 스크립트

<?php 
function super_unique($array) 
{ 
    $result = array_map("unserialize", array_unique(array_map("serialize", $array))); 

    foreach ($result as $key => $value) 
    { 
    if (is_array($value)) 
    { 
     $result[$key] = super_unique($value); 
    } 
    } 

    return $result; 
} 

$result = super_unique($avar); 
echo "<pre>"; 
print_r($result); 

?> 
대답은 있지만 내 경우가 해결되지

비슷한 질문 :

    ,691,363을 (210) How to remove duplicate values from a multi-dimensional array in PHP
  1. PHP remove duplicate values from multidimensional array

  • 은 (0,1,23)이 고정 배열 키는 당신에게 모든

  • +0

    감사? –

    +0

    아니요, 동적입니다. 테이블 ID에서 당기기 – Andy

    답변

    3
    $seen = array(); 
    foreach($avar as &$entry){ 
        $entry = array_unique(array_diff($entry,$seen)); 
        $seen = array_merge($entry,$seen); 
    } 
    unset($entry); 
    var_dump($avar); 
    
    +0

    정확하게 똑같은 것을 게시하고 싶었습니다! :) – zavg

    +0

    그것은 좋은 일을 받아 들였습니다, 고마워요! – Andy

    관련 문제