diff --git a/composer.json b/composer.json index de8acee..aeba681 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": "~5.4" }, "require-dev": { - "phpunit/phpunit": "4.1.*", + "phpunit/phpunit": "4.*", "satooshi/php-coveralls": "dev-master" }, "autoload": { diff --git a/src/Collection.php b/src/Collection.php index 00db5a9..aee66bd 100644 --- a/src/Collection.php +++ b/src/Collection.php @@ -306,6 +306,20 @@ public function tail() return new Collection(array_slice($this->arr, 1)); } + /** + * Returns a collection with all the elements in this collection, + * but with regenerated numeric indexes. + *

+ * This uses the array_values() PHP built-in function. + *

+ * + * @return Collection + */ + public function values() + { + return new Collection(array_values($this->arr)); + } + /** * Creates the object. * diff --git a/tests/CollectionTest.php b/tests/CollectionTest.php index 7f43b7a..2d47d32 100644 --- a/tests/CollectionTest.php +++ b/tests/CollectionTest.php @@ -187,6 +187,22 @@ public function testTail() $this->assertEquals($col2, Collection::fromArray(['x'])->tail()); } + public function testValues() + { + $col1 = $this->object->filter(function ($elem) { return $elem > 2; }); + $this->assertEquals(3, $col1[2]); + $this->assertEquals(4, $col1[3]); + $this->assertEquals(5, $col1[4]); + $this->assertEquals(6, $col1[5]); + $col2 = $col1->values(); + $this->assertEquals(3, $col2[0]); + $this->assertEquals(4, $col2[1]); + $this->assertEquals(5, $col2[2]); + $this->assertEquals(6, $col2[3]); + $col3 = Collection::fromArray([])->values(); + $this->assertCount(0, $col3); + } + public function testOffsetExists() { $this->assertTrue(isset($this->object[3]));