Συνάρτηση usort

Η συνάρτηση usort ταξινομεί έναν πίνακα βάσει των τιμών των στοιχείων του, χρησιμοποιώντας για αυτό μια συνάρτηση callback για να καθορίσει τη σειρά των στοιχείων στον ταξινομημένο πίνακα. Η συνάρτηση τροποποιεί τον ίδιο τον πίνακα.

Η συνάρτηση σύγκρισης πρέπει να επιστρέφει έναν ακέραιο αριθμό, ο οποίος ανάλογα με το αποτέλεσμα της σύγκρισης: μικρότερο, ίσο ή μεγαλύτερο από το μηδέν.

Σύνταξη

phpusort(array &$array, callable $callback): bool

Παράδειγμα

Ας ταξινομήσουμε έναν πίνακα κατά αύξουσα σειρά των στοιχείων του:

php<?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);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php[1, 2, 3, 4, 5]

Παράδειγμα

Τώρα ας ταξινομήσουμε τον πίνακα κατά φθίνουσα σειρά των στοιχείων:

php<?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);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php[1, 2, 3, 4, 5]

Παράδειγμα

Τώρα ας ταξινομήσουμε έναν πίνακα κατά αύξουσα σειρά του αριθμού των χαρακτήρων στα στοιχεία του πίνακα:

php<?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);
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php[
  '1',
  '12',
  '123',
  '1234',
  '12345',
]

Δείτε επίσης

  • τη συνάρτηση sort,
    που ταξινομεί κατά αύξουσα σειρά των στοιχείων
  • τη συνάρτηση rsort,
    που ταξινομεί κατά φθίνουσα σειρά των στοιχείων
  • τη συνάρτηση ksort,
    που ταξινομεί κατά αύξουσα σειρά των κλειδιών
  • τη συνάρτηση krsort,
    που ταξινομεί κατά φθίνουσα σειρά των κλειδιών
  • τη συνάρτηση asort,
    που ταξινομεί κατά αύξουσα σειρά των στοιχείων διατηρώντας τα κλειδιά
  • τη συνάρτηση arsort,
    που ταξινομεί κατά φθίνουσα σειρά των στοιχείων διατηρώντας τα κλειδιά
  • τη συνάρτηση natsort,
    που ταξινομεί με φυσική σειρά
  • τη συνάρτηση natcasesort,
    που ταξινομεί με φυσική σειρά χωρίς διάκριση πεζών/κεφαλαίων
  • τη συνάρτηση usort,
    που ταξινομεί με βάση συνάρτηση callback
  • τη συνάρτηση uksort,
    που ταξινομεί με βάση συνάρτηση callback στα κλειδιά
  • τη συνάρτηση uasort,
    που ταξινομεί με βάση συνάρτηση callback διατηρώντας τα κλειδιά
  • τη συνάρτηση array_multisort,
    που ταξινομεί πολλούς πίνακες ταυτόχρονα