(PECL ds >= 1.0.0)
Ds\Sequence::sorted β ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ callback-ΡΡΠ½ΠΊΡΠΈΡ
comparator.
comparator
ΠΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π½Π΅ΡΠ΅Π»ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ float
PHP Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ callback-ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊ ΡΠΈΠΏΡ int.
ΠΠΎΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ 0.99 ΠΈ 0.1
ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0
ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π²Π½ΡΠ΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ds\Sequence::sorted()
<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
print_r($sequence->sorted());
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
Ds\Vector Object
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ds\Sequence::sorted() Ρ callback-ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sorted = $sequence->sorted(function($a, $b) {
return $b <=> $a;
});
print_r($sorted);
?>ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π°:
Ds\Vector Object
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)