Example #1
0
 /**
  * Get the keys of a collection.
  *
  * @param array|Traversable|AssociativeInterface|SequenceInterface $collection
  *
  * @return array An array containing the keys of $collection.
  */
 public static function keys($collection)
 {
     if ($collection instanceof AssociativeInterface) {
         return $collection->keys();
     } elseif ($collection instanceof SequenceInterface) {
         return range(0, $collection->size() - 1);
     } elseif (is_array($collection)) {
         return array_keys($collection);
     }
     $keys = array();
     foreach ($collection as $value) {
         $keys[] = $collection->key();
         // https://bugs.php.net/bug.php?id=45684
     }
     return $keys;
 }