在下面的数组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 )
)
答案 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);