我有一个包含大量重复项的“帖子标题”数据库,有时会有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
数组只包含'second'条目,或者'duplicate' - 我想将它们存储在同一个数组中。如何使用array_diff
或合并或类似的东西来执行此操作?
即。如果两个帖子包含相同的标题,我希望这两个最终都在我的$ duplicates数组中,并且各自的ID和标题一起。
还有array_unique函数,但在这种情况下我无法弄清楚如何使用它...
答案 0 :(得分:0)
if (!in_array($post_title, $titles)){
array_push( $titles, $post_title) );
}
array_push( $duplicates, $post_title) );
//end while
这样就可以将原始副本和重复项存储在$ duplicates数组中。
或者您可以使用:
$titles = array_unique( $original_array );
答案 1 :(得分:0)
假设$titles[] = array( 'id' => integer, 'title' => string );
以及id:title是1:1映射
$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;
}
}