uksort w PHP

Funkcja uksort w PHP umożliwia zastosowanie własnych kryteriów sortowania kluczy tablicy asocjacyjnej bez sortowania elementów tablicy.

Składnia

uksort(array $tablica, $funkcja_sortujaca):bool

Parametry

ParametrOpis
$tablica Nazwa tablicy asocjacyjnej, której elementy mają być posortowane.
$funkcja_sortujaca

Nazwa funkcji sortującej, która porównuje dwa elementy według kryterium określonym przez programistę. Nasza funkcja sortująca musi mieć na wejściu dwa elementy (argumenty). Funkcja ta powinna zwrócić:

  • 0 - w przypadku gdy dwa argumenty są sobie równe;
  • wartość ujemną, gdy pierwszy argument jest mniejszy od drugiego;
  • wartość dodatnią, gdy pierwszy argument jest większy od drugiego;

 

Przykład 1

<?php
function porownaj($a, $b)
{
if ($a == $b) {
return 0;
}
if ($a < $b) {
return 1;
}
else
{
return -1;
}
}
$tablica = array('a'=> -11, 'b' => 22, 'c' => 7, 'd' => 0);
echo 'Dana jest tablica:<br>';
foreach ($tablica as $key => $val) {
echo "{$key} - {$val}<br>";
}
uksort($tablica, "porownaj");
echo '<br>Posortowana tablica w porządku malejącym z użyciem funkcji usort:<br>';
foreach ($tablica as $key => $val) {
echo "{$key} - {$val}<br>";
} ?>

Jak działa powyższy kod? Najpierw definiujemy funkcję sortującą, która posiada dwa argumenty. Jeżeli oba elementy są sobie równe, to funkcja zwraca wartość zero. Jeżeli pierwszy argument jest większy od drugiego, funkcja zwraca 1, w przeciwnym przypadku wartość -1 (ujemną).

Funkcja uksort automatycznie zastosuje to kryterium sortowania dla wszystkich kluczy tablicy (nie wartości).





© medianauka.pl, 2021-11-23, A-4275



©® Media Nauka 2008-2023 r.