我是PHP的新手,无法理解这个基本问题。PHP是否有一种类似于数组但具有动态添加或删除任意数量对象的集合或列表对象?
https://www.php.net/manual/en/book.ds.php
<?php
use Ds\Set;
$numbers = new Set([1, 2, 3]);
$numbers->sum();
$numbers->diff(new Set([2, 3, 4]))
->union(new Set([3, 4, 5]))
->remove(...[3, 4])
$arrayName[] = ...
表示法(其中arrayName是您的数组名称)动态增加数组。请注意保留HTML标记。$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]);
PHP的数组就像是一个有序数组和哈希查找表的混合体。你可以通过字符串索引查找任何元素,但元素也有一个定义好的顺序。
只需使用PHP数组即可,PHP中不存在“固定大小”数组,因此您可以放心使用它们。
SplFixedArray
。请看这里:http://php.net/manual/zh/splfixedarray.construct.php - Julian
List
和HashMap
,但不提供Set
。通过使用数组的键来模拟Set
,可以通过HashMap
接口实现。请注意,此方法要求元素必须是可哈希的(即不能是对象)。 - dtechSet
,只是一个普通的数组。问题的标题是误导性的。OP并不是在寻找一个Set
,而是在寻找向数组中添加元素的方法。如果你正在寻找一个Set
,请看下面@okdewit的答案,使用Ds
库。它在后台使用了一个命名键数组,并添加了一些辅助方法(我认为与直接使用命名键数组相比没有性能提升)。 - jpenna