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

开发疑难解答

在下面的数组中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 ) 
)
尸体

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

您可以通过以下方式提取数组和索引(必须是唯一的)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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章