我知道这些问题到处都有,但我有以下解决方案,并希望确保它总是有效的。
考虑一下下面的数组。
Array
(
[299] => <span class="state-2"><span class="typetitle">Unit 1</span><img src="/unit1.jpg" /></span>
[293] => <span class="state-2"><span class="typetitle">Unit 2</span><img src="/unit2.png" /></span>
[231] => <span class="state-2"><span class="typetitle">Unit 3</span><img src="/unit3.png" /></span>
[336] => <span class="state-2"><span class="typetitle">Unit 3</span><img src="/unit3.png" /></span>
[188] => <span class="state-2"><span class="typetitle">Unit 4</span><img src="/unit4.png" /></span>
[334] => <span class="state-2"><span class="typetitle">Unit 5</span><img src="/unit5.jpg" /></span>
[294] => <span class="state-3"><span class="typetitle booked">Unit 2</span><img src="/unit2.png" /></span>
[335] => <span class="state-3"><span class="typetitle booked">Unit 4</span><img src="/unit4.png" /></span>
)具有state-2类的项是可用的,state-3类的项是完全预订的,并且按照设计排在最后,因为我根据值title对数组进行排序。这个比特起作用了。
现在,我想以相同的顺序删除重复的单元(单元2、单元3、单元4),以便保留第一个实例,而不保留最后一个实例。这样,如果一个单元被预订,但同一类型的单元仍然可用,则可用单元不会被隐藏,这就是我执行此操作时发生的情况……
$services = array_intersect_key($services, array_unique(array_map('strip_tags', $services)));我的问题是,如何删除重复的项目?它是否找到第一个,保留它,然后删除任何进一步的重复项?
我能保证这个array_unique每次都是这样工作的吗?或者是否存在移除数组中的第一个元素的风险?
发布于 2017-03-12 01:10:00
啊,我发现如果我想要包含一个排序变量,array_unique可以接受它,但是在php 5.2.10中,默认情况下它被改为SORT_STRING。
这将始终确保只要我的初始数组排序总是正确的,array_unique就会保留第一个找到的实例,并删除每个顺序重复的实例。
来源:http://php.net/manual/en/function.array-unique.php
https://stackoverflow.com/questions/42737998
复制相似问题