如何从多维数组中删除重复的条目?

时间:2018-02-19 20:09:20

标签: php arrays

在下面的数组linked_article_id中有两次值为3但我想从这个数组中删除一个条目(即我只想要一个唯一的linked_article_id值)。我尝试了以下功能,但对我不起作用:

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

阵列:

Array ( [0] => Array ( [id] => 193 [linked_article_id] => 2 [article_id] => 1 [article_title] => Test header link [slug] => test-header-link )
        [1] => Array ( [id] => 195 [linked_article_id] => 3 [article_id] => 1 [article_title] => upload image test [slug] => upload-image-test ) 
        [2] => Array ( [id] => 197 [linked_article_id] => 4 [article_id] => 1 [article_title] => Adrenal Fatigue [slug] => arrowdesigns01-test ) 
        [3] => Array ( [id] => 200 [linked_article_id] => 9 [article_id] => 1 [article_title] => Recipe2 [slug] => recipe2 )
        [4] => Array ( [id] => 211 [linked_article_id] => 15 [article_id] => 1 [article_title] => New [slug] => new )
        [5] => Array ( [id] => 214 [linked_article_id] => 3 [article_id] => 1 [article_title] => upload image test [slug] => upload-image-test ) 
)

1 个答案:

答案 0 :(得分:3)

序列化用于比较整个数组是否是缩进的,而不仅仅是一个键。

您可以通过linked_article_id提取数组和索引(必须是唯一的):

$input = array_column($input, null, 'linked_article_id');

如果你真的需要在(可选)之后重新索引:

$input = array_values(array_column($input, null, 'linked_article_id'));

我没有看到任何人如何运行PHP<现在5.5.0,但以防万一:

foreach($input as $v) {
    $result[$v['linked_article_id']] = $v;
}

然后如果需要:

$result = array_values($result);
相关问题