【发布时间】:2016-12-04 07:19:21
【问题描述】:
删除基于重复值的数组项,这些重复值出现在数组内部更深 1 级。一旦对重复项进行排序,那么重新排序新数组会很酷。
这是当前的输入数组...
ARRAY
(
[0] => ARRAY
(
[TYPE] => PHOTOS
)
[1] => ARRAY
(
[TYPE] => DOCUMENTS
)
[2] => ARRAY
(
[TYPE] => DOCUMENTS
)
[3] => ARRAY
(
[TYPE] => VIDEOS
)
[4] => ARRAY
(
[TYPE] => PHOTOS
)
)
如果我从这个数组中输出TYPE,我会得到这个......
[TYPE] => PHOTOS
[TYPE] => DOCUMENTS
[TYPE] => DOCUMENTS
[TYPE] => VIDEOS
[TYPE] => PHOTOS
我想从此输入中删除所有重复项,所以我只剩下这个新输出...
[TYPE] => PHOTOS
[TYPE] => DOCUMENTS
[TYPE] => VIDEOS
但是是否可以对每个 TYPE 值进行设置和排序。例如,我可以使用变量或其他东西设置预定的顺序。有关将新数组重新排序为特定顺序的任何建议。使用这个新订单...
$photos = 1;
$videos = 2;
$documents = 3;
或者使用数组的新订单可能......
$new_order = array(
1 => 'PHOTOS',
2 => 'VIDEOS',
3 => 'DOCUMENTS'
)
任何帮助都会很好。我已经尝试过array_unique 和 array_map,但我似乎不知道如何指定要检查重复项的子数组键。
这是我迄今为止尝试过的......
$downloads = get_field('downloads');
$types = array_unique($downloads));
和
$downloads = get_field('downloads');
$types = array_map("unserialize", array_unique(array_map("serialize", $downloads)));
我还没有重新排序数组。
谢谢
【问题讨论】:
-
我不确定您所说的重新排序技术是什么。但您可以使用
array_unique删除这些重复项。 -
array_unique不适用于多维数组 -
请你把一些东西清理一下。你想只获取唯一类型的数组还是具有唯一类型的输入项数组?
标签: php arrays duplicates