Συνάρτηση usort
Η συνάρτηση usort ταξινομεί έναν πίνακα
βάσει των τιμών των στοιχείων του, χρησιμοποιώντας
για αυτό μια συνάρτηση callback για να καθορίσει τη σειρά
των στοιχείων στον ταξινομημένο πίνακα.
Η συνάρτηση τροποποιεί τον ίδιο τον πίνακα.
Η συνάρτηση σύγκρισης πρέπει να επιστρέφει έναν ακέραιο αριθμό, ο οποίος ανάλογα με το αποτέλεσμα της σύγκρισης: μικρότερο, ίσο ή μεγαλύτερο από το μηδέν.
Σύνταξη
usort(array &$array, callable $callback): bool
Παράδειγμα
Ας ταξινομήσουμε έναν πίνακα κατά αύξουσα σειρά των στοιχείων του:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[1, 2, 3, 4, 5]
Παράδειγμα
Τώρα ας ταξινομήσουμε τον πίνακα κατά φθίνουσα σειρά των στοιχείων:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[1, 2, 3, 4, 5]
Παράδειγμα
Τώρα ας ταξινομήσουμε έναν πίνακα κατά αύξουσα σειρά του αριθμού των χαρακτήρων στα στοιχεία του πίνακα:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[
'1',
'12',
'123',
'1234',
'12345',
]
Δείτε επίσης
-
τη συνάρτηση
sort,
που ταξινομεί κατά αύξουσα σειρά των στοιχείων -
τη συνάρτηση
rsort,
που ταξινομεί κατά φθίνουσα σειρά των στοιχείων -
τη συνάρτηση
ksort,
που ταξινομεί κατά αύξουσα σειρά των κλειδιών -
τη συνάρτηση
krsort,
που ταξινομεί κατά φθίνουσα σειρά των κλειδιών -
τη συνάρτηση
asort,
που ταξινομεί κατά αύξουσα σειρά των στοιχείων διατηρώντας τα κλειδιά -
τη συνάρτηση
arsort,
που ταξινομεί κατά φθίνουσα σειρά των στοιχείων διατηρώντας τα κλειδιά -
τη συνάρτηση
natsort,
που ταξινομεί με φυσική σειρά -
τη συνάρτηση
natcasesort,
που ταξινομεί με φυσική σειρά χωρίς διάκριση πεζών/κεφαλαίων -
τη συνάρτηση
usort,
που ταξινομεί με βάση συνάρτηση callback -
τη συνάρτηση
uksort,
που ταξινομεί με βάση συνάρτηση callback στα κλειδιά -
τη συνάρτηση
uasort,
που ταξινομεί με βάση συνάρτηση callback διατηρώντας τα κλειδιά -
τη συνάρτηση
array_multisort,
που ταξινομεί πολλούς πίνακες ταυτόχρονα