April 22, 2018 —John Koster
The pad
method will pad the current collection instance's elements up to the provided size with the given value (based on the integer size of the collection). This method will return a new collection instance without affecting the current collection instance.
The behavior of this method is similar to PHP's array_pad
function.
1public function pad(2 $size,3 $value4);
In the following example, we will create an initial collection instance and then create two new, padded, collections.
1// Create the initial collection instance. 2$collection = collect([ 3 'Alice', 4 'Bob', 5 'Charlie', 6]); 7 8// Create the first padded collection. 9$collectionTwo = $collection->pad(10, 'Hello, Universe');10 11// Create the second padded collection.12$collectionThree = collect()->pad(10, 'Hello, Universe');
When we analyze the results after the above code has executed, the first $collection
instance will contain the following values:
$collection
Instance Values:
Index | Value |
---|---|
0 | Alice |
1 | Bob |
2 | Charlie |
At first glance, you might expect the $collectionTwo
instance to contain elements with the value Hello, Universe
, however, that is not the case:
$collectionTwo
Instance Values:
Index | Value |
---|---|
0 | Alice |
1 | Bob |
2 | Charlie |
3 | Hello, Universe |
4 | Hello, Universe |
5 | Hello, Universe |
6 | Hello, Universe |
7 | Hello, Universe |
8 | Hello, Universe |
9 | Hello, Universe |
This is because the pad
method will pad out the collections internal array to the desired length. Since the $collection
instance already contained three elements, only seven elements with the value Hello, Universe
were added to the collection.
In the second padded example, we invoke the pad
method on a new collection instance (via a call to the collect
helper function); we can see that the $collectionThree
instance does, in fact, contain ten elements with the value Hello, Universe
:
$collectionThree
Instance Values:
Index | Value |
---|---|
0 | Hello, Universe |
1 | Hello, Universe |
2 | Hello, Universe |
3 | Hello, Universe |
4 | Hello, Universe |
5 | Hello, Universe |
6 | Hello, Universe |
7 | Hello, Universe |
8 | Hello, Universe |
9 | Hello, Universe |
∎
The following amazing people help support this site and my open source projects ♥️
If you're interesting in supporting my work and want to show up on this list, check out my GitHub Sponsors Profile.