Class SortIterator
An iterator that will return the passed items in order. The order is given by the value returned in a callback function that maps each of the elements.
Example:
$items = [$user1, $user2, $user3]; $sorted = new SortIterator($items, function ($user) { return $user->age; }); // output all user name order by their age in descending order foreach ($sorted as $user) { echo $user->name; }
This iterator does not preserve the keys passed in the original elements.
- IteratorIterator implements Iterator, Traversable, OuterIterator
- Cake\Collection\Collection implements Cake\Collection\CollectionInterface, Serializable uses Cake\Collection\CollectionTrait
- Cake\Collection\Iterator\SortIterator
Method Summary
- __construct() public
Wraps this iterator around the passed items so when iterated they are returned in order.
- unwrap() public
Method Detail
__construct()source public
__construct( array|Traversable $items , callable|string $callback , integer $dir = \SORT_DESC , integer $type = \SORT_NUMERIC )
Wraps this iterator around the passed items so when iterated they are returned in order.
The callback will receive as first argument each of the elements in $items, the value returned in the callback will be used as the value for sorting such element. Please note that the callback function could be called more than once per element.
Parameters
- array|Traversable
$items
- The values to sort
- callable|string
$callback
A function used to return the actual value to be compared. It can also be a string representing the path to use to fetch a column or property in each element
- integer
$dir
optional \SORT_DESC - either SORT_DESC or SORT_ASC
- integer
$type
optional \SORT_NUMERIC the type of comparison to perform, either SORT_STRING SORT_NUMERIC or SORT_NATURAL
Throws
InvalidArgumentExceptionIf passed incorrect type for items.
Overrides
Cake\Collection\Collection::__construct()
unwrap()source public
unwrap( )
Returns
IteratorOverrides
Cake\Collection\CollectionTrait::unwrap()
Methods inherited from Cake\Collection\Collection
__debugInfo()source public
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
arraycount()source public
count( )
Returns the amount of elements in the collection.
Returns
integerImplementation of
Cake\Collection\CollectionInterface::count()
countKeys()source public
countKeys( )
Returns the number of unique keys in this iterator. This is, the number of elements the collection will contain after calling toArray()
Returns
integerImplementation of
Cake\Collection\CollectionInterface::countKeys()
serialize()source public
serialize( )
Returns a string representation of this object that can be used to reconstruct it
Returns
stringImplementation of
Serializable::serialize()
unserialize()source public
unserialize( string $collection )
Unserializes the passed string and rebuilds the Collection instance
Parameters
- string
$collection
- The serialized collection
Implementation of
Serializable::unserialize()
Methods used from Cake\Collection\CollectionTrait
_unwrap()source public
_unwrap( )
append()source public
append( $items )
appendItem()source public
appendItem( $item , $key = null )
avg()source public
avg( $matcher = null )
cartesianProduct()source public
cartesianProduct( callable $operation = null , callable $filter = null )
Parameters
- callable
$operation
optional null - Operation
- callable
$filter
optional null - Filter
Returns
Cake\Collection\CollectionInterface
Throws
LogicExceptionchunk()source public
chunk( $chunkSize )
chunkWithKeys()source public
chunkWithKeys( $chunkSize , $preserveKeys = true )
combine()source public
combine( $keyPath , $valuePath , $groupPath = null )
compile()source public
compile( $preserveKeys = true )
contains()source public
contains( $value )
countBy()source public
countBy( $callback )
each()source public
each( callable $c )
every()source public
every( callable $c )
extract()source public
extract( $matcher )
first()source public
first( )
firstMatch()source public
firstMatch( array $conditions )
groupBy()source public
groupBy( $callback )
indexBy()source public
indexBy( $callback )
isEmpty()source public
isEmpty( )
jsonSerialize()source public
jsonSerialize( )
last()source public
last( )
lazy()source public
lazy( )
listNested()source public
listNested( $dir = 'desc' , $nestingKey = 'children' )
Returns
Cake\Collection\Iterator\TreeIterator
match()source public
match( array $conditions )
max()source public
max( $callback , $type = \SORT_NUMERIC )
median()source public
median( $matcher = null )
min()source public
min( $callback , $type = \SORT_NUMERIC )
nest()source public
nest( $idPath , $parentPath , $nestingKey = 'children' )
optimizeUnwrap()source protected
optimizeUnwrap( )
Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
Returns
Traversable|arrayprepend()source public
prepend( $items )
prependItem()source public
prependItem( $item , $key = null )
reduce()source public
reduce( callable $c , $zero = null )
sample()source public
sample( $size = 10 )
shuffle()source public
shuffle( )
skip()source public
skip( $howMany )
some()source public
some( callable $c )
sortBy()source public
sortBy( $callback , $dir = \SORT_DESC , $type = \SORT_NUMERIC )
sumOf()source public
sumOf( $matcher = null )
take()source public
take( $size = 1 , $from = 0 )
takeLast()source public
takeLast( $howMany )
through()source public
through( callable $handler )
toArray()source public
toArray( $preserveKeys = true )
toList()source public
toList( )
transpose()source public
transpose( )
Returns
Cake\Collection\CollectionInterface
Throws
LogicExceptionunfold()source public
unfold( callable $transformer = null )
zip()source public
zip( $items )
zipWith()source public
zipWith( $items , $callable )
Magic methods inherited from Cake\Collection\CollectionInterface
cartesianProduct() |
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.7/class-Cake.Collection.Iterator.SortIterator.html