If you need to sort a multi-demension array, for example, an array such as
$TeamInfo[$TeamID]["WinRecord"]
$TeamInfo[$TeamID]["LossRecord"]
$TeamInfo[$TeamID]["TieRecord"]
$TeamInfo[$TeamID]["GoalDiff"]
$TeamInfo[$TeamID]["TeamPoints"]
and you have say, 100 teams here, and want to sort by "TeamPoints":
first, create your multi-dimensional array. Now, create another, single dimension array populated with the scores from the first array, and with indexes of corresponding team_id... ie
$foo[25] = 14
$foo[47] = 42
or whatever.
Now, asort or arsort the second array.
Since the array is now sorted by score or wins/losses or whatever you put in it, the indices are all hoopajooped.
If you just walk through the array, grabbing the index of each entry, (look at the asort example. that for loop does just that) then the index you get will point right back to one of the values of the multi-dimensional array.
Not sure if that's clear, but mail me if it isn't...
-moarsort
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
arsort
Референца за `function.arsort.php` со подобрена типографија и навигација.
arsort
(PHP 4, PHP 5, PHP 7, PHP 8)
arsort — Сортирај низа во опаѓачки редослед и одржи асоцијација на индекс
= NULL
Сортира array на место во опаѓачки редослед, така што неговите клучеви ја одржуваат својата корелација со вредностите со кои се поврзани.
Ова се користи главно при сортирање на асоцијативни низи каде што реалниот редослед на елементите е значаен.
Забелешка:
Ако два члена се споредат како еднакви, тие го задржуваат својот оригинален редослед. Пред PHP 8.0.0, нивниот релативен редослед во сортираната низа беше недефиниран.
Забелешка:
Ги ресетира внатрешниот покажувач на низата на првиот елемент.
Параметри
array-
Влезната низа.
flags-
Опционалниот втор параметар
flagsможе да се користи за модифицирање на однесувањето на сортирањето користејќи ги овие вредности:Знаменца за тип на сортирање:
-
SORT_REGULAR- спореди ставки нормално; деталите се опишани во оператори за споредба section -
SORT_NUMERIC- спореди ставки нумерички -
SORT_STRING- спореди ставки како низи -
SORT_LOCALE_STRING- спореди ставки како низи, врз основа на тековниот локал. Користи го локалот, кој може да се промени со користење на setlocale() -
SORT_NATURAL- спореди ставки како низи користејќи "природно нарачување" како natsort() -
SORT_FLAG_CASE- може да се комбинира (бинарно ИЛИ) соSORT_STRINGorSORT_NATURALза сортирање на низи без разлика на големината на буквите
-
Вратени вредности
Секогаш враќа true.
Примери
Пример #1 arsort() example
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
echo "$key = $val\n";
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
a = orange d = lemon b = banana c = apple
Овошјето е сортирано во обратен азбучен редослед, а индексот поврзан со секој елемент е одржуван.
Види Исто така
- sort() - Сортирај низа во растечки редослед
- asort() - Сортирај низа во растечки редослед и одржи асоцијација на индекс
- На споредба на функции за сортирање на списоци
Белешки од корисници 3 белешки
I have two servers; one running 5.6 and another that is running 7. Using this function on the two servers gets me different results when all of the values are the same.
<?php
$list = json_decode('{"706":2,"703":2,"702":2,"696":2,"658":2}', true);
print_r($list);
arsort($list);
echo "<br>";
print_r($list);
?>
PHP 5.6 results:
Array ( [706] => 2 [703] => 2 [702] => 2 [696] => 2 [658] => 2 )
Array ( [658] => 2 [696] => 2 [702] => 2 [703] => 2 [706] => 2 )
PHP 7 results:
Array ( [706] => 2 [703] => 2 [702] => 2 [696] => 2 [658] => 2 )
Array ( [706] => 2 [703] => 2 [702] => 2 [696] => 2 [658] => 2 )