sort w PHP

Funkcja sort w PHP umożliwia sortowania elementów tablicy. Funkcję tę stosujemy do tablic indeksowanych numerycznie, a nie do tablic asocjacyjnych.

Składnia

sort(array $tablica [, int $flaga]):bool

Parametry

ParametrOpis
$tablica Tablica przeznaczona do posortowania.
$flaga

Flaga, która ustawia tryb sortowania. Są możliwe następujące wartości predefiniowane:

  • SORT_REGULAR - domyślne sortowanie,
  • SORT_NUMERIC - numeryczne sortowanie,
  • SORT_STRING - sortowanie alfabetyczne,
  • SORT_LOCALE_STRING - sortowanie alfabetyczne w oparciu o ustawienia lokalne (setlocale).
  • SORT_NATURAL - sortowanie tekstowe
  • SORT_FLAG_CASE - sortowanie kombinowane (bitowe OR) między SORT_STRING lub SORT_NATURAL.

Jeśli porównywane elementy tablicy okazują się równe, to zachowują swoją pierwotną kolejność. Przed PHP 8 ich kolejność w posortowanej tablicy nie była zdefiniowana.

Uwaga: Ta funkcja przypisuje nowe klucze do elementów tablicy.

Przykład 1

<?php
$tablica1 = array(1,22,31,42,51,112,21,-1,331,42,61,72,83);
echo 'Dana jest tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
}
sort($tablica1);
echo '<br>Posortowana tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
} ?>

W powyższym przykładzie zdefiniowaliśmy tablicę liczb. Wyświetliliśmy elementy tej tablicy za pomocą pętli foreach. Następnie użyliśmy funkcji sortowania sort, która posortowała numerycznie elementy tablicy (z uwagi na wartości tablicy typu int) i ponownie wyświetliliśmy elementy tej samej tablicy.

Przykład 2

<?php
$tablica1 = array("Ola","Ala","Janek","Tomek","Jacek");
echo 'Dana jest tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
}
sort($tablica1);
echo '<br>Posortowana tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
} ?>

W powyższym przykładzie zdefiniowaliśmy tablicę tekstową. Wyświetliliśmy elementy tej tablicy za pomocą pętli foreach. Następnie użyliśmy funkcji sortowania sort, która posortowała alfabetycznie elementy tablicy (z uwagi na wartości tablicy typu string) i ponownie wyświetliliśmy elementy tej samej tablicy.

Sortowanie polskich znaków

A co z polskimi literami? Niestety zwykłe użycie funkcji sort nie da spodziewanego efektu posortowania tablicy według polskiego alfabetu. Można jednak temu zaradzić. Oto rozwiązanie:

Przykład 3

<?php
$tablica1 = array("żubr","zebra","świstak","suseł","ćma","cyweta");
echo 'Dana jest tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
}
setlocale(LC_ALL, 'pl_PL');
sort($tablica1, SORT_LOCALE_STRING);
echo '<br>Posortowana tablica:<br>';
foreach ($tablica1 as $val) {
echo "{$val}, ";
} ?>

Najpierw trzeba ustawić za pomocą funkcji setlocale ustawienia lokalne (narodowe), a potem jako flagi sortowania użyć flagi SORT_LOCALE_STRING.

Aby posortować tablice w innym porządku lub tablice asocjacyjne należy użyć innych funkcji sortowania (rsort, asort, ksort, usort, uasort, uksort).





© medianauka.pl, 2021-11-20, ART-4263





Polecamy w naszym sklepie

Kolorowe skarpetki - football piłka nożna
kolorowe skarpetki góra lodowa
Matematyka konkretna
Kolorowe skarpetki Kostka
Kolorowe skarpetki Miasto
Niektóre treści nie są dostosowane do Twojego profilu. Jeżeli jesteś pełnoletni możesz wyrazić zgodę na przetwarzanie swoich danych osobowych. W ten sposób będziesz miał także wpływ na rozwój naszego serwisu.
© ® Media Nauka 2008-2022 r.