【发布时间】:2010-01-12 18:28:28
【问题描述】:
php中是否有Java Set的等价物?
(表示一个集合不能包含两次相同的元素)
【问题讨论】:
标签: java php collections set
php中是否有Java Set的等价物?
(表示一个集合不能包含两次相同的元素)
【问题讨论】:
标签: java php collections set
您可以只使用数组并将所需的数据放入键中,因为键不能重复。
【讨论】:
您可以使用标准的 PHP 值数组,并通过 array_unique 函数传递它:
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
输出:
array(2) {
[0] => int(4)
[2] => string(1) "3"
}
【讨论】:
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
顾名思义,这仅适用于 objects。如果您想将此与标量类型一起使用,则必须使用新的 Spl Types 作为替换,以及使用 Spl Data Structures 和 ArrayObject 替换数组。
【讨论】: