【问题标题】:Is there the equivent of a Java Set in php? [duplicate]php中是否有相当于Java Set的东西? [复制]
【发布时间】:2010-01-12 18:28:28
【问题描述】:

php中是否有Java Set的等价物?

(表示一个集合不能包含两次相同的元素)

【问题讨论】:

    标签: java php collections set


    【解决方案1】:

    您可以只使用数组并将所需的数据放入键中,因为键不能重复。

    【讨论】:

      【解决方案2】:

      您可以使用标准的 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"
      }
      

      【讨论】:

        【解决方案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 StructuresArrayObject 替换数组。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-02
          • 2019-11-18
          • 2016-06-03
          • 1970-01-01
          • 2011-02-27
          • 2011-06-19
          相关资源
          最近更新 更多