PHP-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Sorter
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ, (*1)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
composer require lemurro/lib-sorter
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
$sorter->run(&$array, $key_name, $order_type, $save_keys = true);
-
&$array
array
(ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) - ΠΠ°ΡΡΠΈΠ² Ρ Π΄Π°Π½Π½ΡΠΌΠΈ (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅)
-
$key_name
string
(ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) - ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°
-
$order_type
string
(ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) - Π’ΠΈΠΏ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ('asc'|'desc')
-
$save_keys
boolean
(ΠΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) - Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠ»ΡΡΠΈ (true|false), ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ true
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅ΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
use Lemurro\Lib\Sorter\Sorter;
$sorter = new Sorter();
$array = [
'z' => [
'field1' => 'A',
'field2' => 'orange',
],
'x' => [
'field1' => 'C',
'field2' => 'apple',
],
'c' => [
'field1' => 'B',
'field2' => 'peach',
],
];
$sorter->run($array, 'field1', 'asc');
var_dump($array);
/*
[
'z' => [
'field1' => 'A'
'field2' => 'orange'
]
'c' => [
'field1' => 'B'
'field2' => 'peach'
]
'x' => [
'field1' => 'C'
'field2' => 'apple'
]
]
*/
use Lemurro\Lib\Sorter\Sorter;
$sorter = new Sorter();
$array = [
'z' => [
'field1' => 'A',
'field2' => 'orange',
],
'x' => [
'field1' => 'C',
'field2' => 'apple',
],
'c' => [
'field1' => 'B',
'field2' => 'peach',
],
];
$sorter->run($array, 'field2', 'desc');
var_dump($array);
/*
[
'x' => [
'field1' => 'C'
'field2' => 'apple'
]
'c' => [
'field1' => 'B'
'field2' => 'peach'
]
'z' => [
'field1' => 'A'
'field2' => 'orange'
]
]
*/
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π±Π΅Π· ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ
use Lemurro\Lib\Sorter\Sorter;
$sorter = new Sorter();
$array = [
'z' => [
'field1' => 'A',
'field2' => 'orange',
],
'x' => [
'field1' => 'C',
'field2' => 'apple',
],
'c' => [
'field1' => 'B',
'field2' => 'peach',
],
];
$sorter->run($array, 'field1', 'asc', false);
var_dump($array);
/*
[
0 => [
'field1' => 'A'
'field2' => 'orange'
]
1 => [
'field1' => 'B'
'field2' => 'peach'
]
2 => [
'field1' => 'C'
'field2' => 'apple'
]
]
*/