2013-03-12 3 views
1

동일한 제목의 게시물이 4 개 이상인 '게시물 제목'데이터베이스가 있습니다.배열에있는 모든 고유 제목 항목을 놓습니다.

ID가 + 인 배열을 모두 중복 항목으로 만듭니다.

$titles = array(); 
$duplicates = array(); //should be multi-dimensional array containing ID and title of each duplicate entry 

//while statement 
if (!in_array($post_title, $titles)){   
    array_push($titles, $post_title)); 
} else { 
    array_push($duplicates, $post_title)); 
} 
//end while 

이 문제는 내 $duplicates 배열 만 '두 번째'항목 또는 '중복'이 포함되어 있다는 것입니다 - 나는 같은 배열에 모두 저장할. array_diff 또는 병합 또는 유사 항목을 사용하여이를 어떻게 수행 할 수 있습니까?

e.e. 두 개의 게시물에 동일한 제목이 포함되어있는 경우 둘 다 개가 my $ duplicates 배열에 각각의 ID와 제목이 함께 표시되기를 바랍니다.

거기 array_unique 기능도하지만 나는 아주이 시나리오에서 이것을 사용하는 방법을 알아낼 수 없습니다 ...

+0

는 원래 배열의 모습을 볼 것이 좋을 것이다 (1) 매핑 및 방법은 while 루프를 수행합니다. – Luceos

답변

0

는 ID가 $titles[] = array('id' => integer, 'title' => string); 또한 가정

$count = array(); 

foreach($titles as $title) { 
    if(!isset($count[$title['id']])) { 
    $count[$title['id']] = 1; 
    } else { 
    $count[$title['id']]++; 
    } 
} 

foreach($titles as $title) { 
    if($count[$title['id']] > 1) { 
    $duplicates[] = $title; 
    } 
} 
0
if (!in_array($post_title, $titles)){ 

     array_push($titles, $post_title)); 

} 
array_push($duplicates, $post_title)); 


//end while 

원래하고 $ 중복 배열에서 중복 저장이 방법.

은 다른 방법을 사용할 수 있습니다 제목 1 인 : $titles = array_unique($original_array);

+0

감사합니다 Luceos하지만 중복되지 않은 항목을 모두 삭제하려고합니다. – Tim

+0

질문을 잘못 해석 했어야합니다. 행운을 빕니다. – Luceos

관련 문제