首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按值中的跨度按正确顺序删除数组项

按值中的跨度按正确顺序删除数组项
EN

Stack Overflow用户
提问于 2017-03-12 00:57:14
回答 1查看 24关注 0票数 0

我知道这些问题到处都有,但我有以下解决方案,并希望确保它总是有效的。

考虑一下下面的数组。

代码语言:javascript
复制
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),以便保留第一个实例,而不保留最后一个实例。这样,如果一个单元被预订,但同一类型的单元仍然可用,则可用单元不会被隐藏,这就是我执行此操作时发生的情况……

代码语言:javascript
复制
$services = array_intersect_key($services, array_unique(array_map('strip_tags', $services)));

我的问题是,如何删除重复的项目?它是否找到第一个,保留它,然后删除任何进一步的重复项?

我能保证这个array_unique每次都是这样工作的吗?或者是否存在移除数组中的第一个元素的风险?

EN

回答 1

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42737998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档