Java';PHP中的HashSet等价物
我对php比较陌生,很难找到合适的数据结构来使用。假设我有一个FooBar类,它正确实现了Java';PHP中的HashSet等价物,java,php,set,hashset,Java,Php,Set,Hashset,我对php比较陌生,很难找到合适的数据结构来使用。假设我有一个FooBar类,它正确实现了equals()和hashCode()。php中哪种集合(如果有的话)最像Java的hashSet?我需要一个没有重复的对象集合。有人建议使用数组和函数array\u key\u存在,但我只是想知道是否有其他方法可以做到这一点?从5.2版开始,Php提供了SplObjectStorage,它提供了Java集合的功能: 关心唯一性(同一对象不能添加两次) 易于遍历集合 易于检查集合中是否存在对象 查看使用
equals()
和hashCode()
。php中哪种集合(如果有的话)最像Java的hashSet?我需要一个没有重复的对象集合。有人建议使用数组和函数array\u key\u存在
,但我只是想知道是否有其他方法可以做到这一点?从5.2版开始,Php提供了SplObjectStorage,它提供了Java集合的功能:
- 关心唯一性(同一对象不能添加两次)
- 易于遍历集合
- 易于检查集合中是否存在对象
查看使用示例标准PHP库(SPL)提供的PHP编程语言中几乎没有可用的数据结构。尽管与Java集合框架实现相比,它们算不上什么,但有时它们可以提供比数组更高级的功能,因此非常有用。您可以找到可用数据结构的文档 PHP中最类似哈希集的数据结构是 从文件中: SplObjectStorage类提供从对象到数据的映射,或者通过忽略数据,提供对象集的映射。这种双重用途在许多需要唯一标识对象的情况下都很有用
PHP中的对象不实现
equals()
和hashCode()
方法。对象的唯一性由spl\u object\u hash()函数返回的值决定。SplObjectStorage
类使用相同的值来唯一标识它包含的对象。SplObjectStorage::getHash($object)
方法可用于检索SplObjectStorage
集合中包含的对象的标识符。数组是一种方法。您可以使用PHP的array_unique函数提取没有重复项的数组,或者在插入之前使用array_key_exists。