我是PHP新手,我無法弄清楚這個基本問題。 PHP是否有某種設置或列表對象?像數組一樣,但能夠動態添加或從中刪除任意數量的對象。PHP是否有Set數據結構?
8
A
回答
7
是的,你可以使用array對象和array functions。
基本上,您可以使用array_push函數或$arrayName[] = ...
表示法(其中arrayName是數組的名稱)動態生長數組。
2
PHP的數組像一個由數字索引的有序數組mashup和一個哈希查找表。您可以通過字符串索引查找任何元素,但元素也具有定義的順序。
3
只需使用一個php數組,在PHP中不存在像「固定大小」數組這樣的事情,所以你應該對它們很好。
+0
是的,有一個固定大小的數組。它被稱爲'SplFixedArray'。請看看這裏:http://php.net/manual/en/splfixedarray.construct.php – Julian 2017-11-15 15:48:35
2
由於您在問題的標題中提到了「Set對象」(即如果您需要對象不在該集合內重複),請查看SplObjectStorage(php 5.3+)。
1
您可以使用Nspl的Set。它支持其採取其他組,數組和穿越的對象作爲參數基本設置操作:
$set = set(1, 2);
$set->add('hello');
$set[] = 'world';
$set->delete('hello');
$array = [1, 2, 3];
$intersection = $set->intersection($array);
$anotherSet = Set::fromArray([1, 2, 3]);
$difference = $set->difference($anotherSet);
$iterator = new \ArrayIterator([1, 2, 3]);
$union = $set->union($iterator);
$isSubset = $set->isSubset([1, 2, 'hello', 'world']);
$isSuperset = $set->isSuperset([1, 2]);
2
如果您正在尋找不重複的元素一個Set
數據結構,似乎是PHP 7的SPL增加了一個支持數據結構爲Set。
相關問題
- 1. R是否有Set數據結構?
- 2. '優先級隊列'數據結構是否符合SET理論?
- 3. java是否有「LinkedConcurrentHashMap」數據結構?
- 4. hashMap,List和Set的數據結構
- 5. 在PHP中是否有Java Set的Equivent?
- 6. SET結構域
- 7. 結構PHP數據
- 8. 這是什麼php數據結構?
- 9. 是否有像流這樣的數據結構,但是很弱?
- 10. 這個基於數組的數據結構是否有名字?
- 11. 數據庫結構:此結構是否適用於m:m?
- 12. PHP中的數據結構
- 13. 這是否類似隊列數據結構有名字嗎?
- 14. 數據結構中的所有位是否關閉?
- 15. Java是否具有支持併發修改的數據結構?
- 16. 是否有一個鄰近映射算法或數據結構?
- 17. 是否有可排序和可搜索的Python數據結構?
- 18. 是否有iPhone的隊列/ FIFO數據結構?
- 19. 刪除和退格鍵是否與數據結構有關?
- 20. python是否有內置的linkedList數據結構?
- 21. DAG是否有支持高效編輯的數據結構?
- 22. 是否有荷蘭代碼(RIASEC)數據的結構化來源?
- 23. 是否有C#數據結構將鍵映射到多個值?
- 24. 是否有基於磁盤的最近鄰數據結構?
- 25. 是否有爲C#實現的任何圖形數據結構?
- 26. Java 7與Java 6中是否有新的數據結構?
- 27. 是否有雙向multimap持久數據結構?
- 28. Elixir是否具有類似於Clojure的持久數據結構?
- 29. 是否有行和列交換的高效數據結構?
- 30. 是否可以「凍結」Set(或Map)?
一個PHP數組提供'List'和'HashMap',但不是'Set'。你可以通過''HashMap'接口模擬'Set',把你的元素設置爲數組鍵。 – dtech 2014-06-27 11:47:29
但是你可以只設置標量類型。如果我是對的,這是一個糟糕的解決方案。 – ribamar 2016-08-19 13:27:47