在PHP中是否存在Java Set的等效项?

lee*_*d00 5 php java collections set

在PHP中是否有相当于Java Set?

(意思是两次不能包含相同元素的集合)

cle*_*tus 10

您可以使用数组并将所需数据放入密钥中,因为密钥不能重复.


Iva*_*tov 6

您可以使用标准的PHP数组值,并通过array_unique函数传递它:

$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)

输出:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
Run Code Online (Sandbox Code Playgroud)


Gor*_*don 5

SplObjectStorage是最接近的东西。

$storage = new SplObjectStorage;
$obj1    = new StdClass;

$storage->attach($obj1);
$storage->attach($obj1); // not attached
echo $storage->count();  // 1

$obj2    = new StdClass; // different instance
$obj3    = clone($obj2); // different instance

$storage->attach($obj2);
$storage->attach($obj3);    
echo $storage->count();  // 3
Run Code Online (Sandbox Code Playgroud)

顾名思义,这仅适用于对象。如果要将此方法与标量类型一起使用,则必须使用新的Spl Types进行替换,以及使用Spl Data StructuresArrayObject进行数组替换。