PHP - Sortiranje nizova


PHP funkcije za sortiranje nizova

U prethodnoj lekciji naučili ste osnove PHP nizova, tj. šta su to nizovi, kako ih kreirati, kako pregledati njihovu strukturu, kako pristupiti njihovim elementima itd. Sa nizovima možete raditi i više stvari poput sortiranja elemenata u bilo kom nizu kako god želite. PHP dolazi s brojnim ugrađenim funkcijama dizajniranim posebno za sortiranje elemenata niza na različite načine, abecedno ili numerički, u uzlaznom ili silaznom redosljedu. Ovdje ćemo istražiti neke od ovih funkcija koje se najčešće koriste za sortiranje nizova.

  • sort() i rsort() - za sortiranje indeksiranih nizova
  • asort() i arsort() - za sortiranje asocijativnih nizova prema vrijednosti
  • ksort() i krsort() - za sortiranje asocijativnih nizova prema ključu


Sortiranje indeksiranih nizova prema rastućem redosljedu

Funkcija sort() koristi se za razvrstavanje elemenata indeksiranog niza u uzlaznom redosljedu (abecednim redom za slova i numerički za brojeve).

<?php
// Definisanje niza
$colors = array("Crvena", "Zelena", "Plava", "Žuta");
 
// Sortiranje i ispis niza
sort($colors);
print_r($colors);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP indeksiranih nizova prema rastućem redosljedu</title>
</head>
<body>

<?php
// Definisanje niza
$colors = array("Crvena", "Zelena", "Plava", "Žuta");
 
// Sortiranje i ispis niza
sort($colors);
print_r($colors);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [0] => Plava [1] => Zelena [2] => Crvena [3] => Žuta )


Na sličan način možete sortirati numeričke elemente matrice u uzlaznom redosljedu.

<?php
// Definisanje niza
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
// Sortiranje i ispis niza
sort($numbers);
print_r($numbers);
?>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )



Sortiranje indeksiranih nizova u silaznom redosljedu

Funkcija rsort() koristi se za razvrstavanje elemenata indeksiranog niza u silaznom redosljedu (abecednim redom za slova i numerički za brojeve).

<?php
// Definisanje niza
$colors = array("Crvena", "Zelena", "Plava", "Žuta");
 
// Sortiranje i ispis niza
rsort($colors);
print_r($colors);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP indeksiranih nizova prema opadajućem redosljedu</title>
</head>
<body>

<?php
// Definisanje niza
$colors = array("Crvena", "Zelena", "Plava", "Žuta");
 
// Sortiranje i ispis niza
rsort($colors);
print_r($colors);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [0] => Žuta [1] => Crvena [2] => Zelena [3] => Plava )


Na sličan način možete sortirati numeričke elemente niza u silaznom redosljedu.

<?php
// Definisanje niza
$numbers = array(1, 2, 2.5, 4, 7, 10);
 
// Sortiranje i ispis niza
rsort($numbers);
print_r($numbers);
?>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )



Sortiranje asocijativnih nizova u uzlaznom redosljedu prema vrijednosti

Funkcija asort() razvrstava elemente asocijativnog niza u uzlaznom redosljedu prema vrijednosti. Djeluje poput sort(), ali čuva povezanost između ključa i njegovih vrijednosti tokom razvrstavanja.

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
asort($age);
print_r($age);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP asocijativnih nizova u uzlaznom redosljedu prema vrijednosti</title>
</head>
<body>

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
asort($age);
print_r($age);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [Petar] => 14 [Miloš] => 29 [Jovana] => 35 [Marija] => 45 )



Sortiranje asocijativnih nizova u silaznom redosljedu prema vrijednosti

Funkcija arsort() razvrstava elemente asocijativnog niza u silaznom redosljedu prema vrijednosti. Djeluje poput rsort(), ali čuva povezanost između ključa i njegovih vrijednosti tokom razvrstavanja.

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
arsort($age);
print_r($age);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP asocijativnih nizova u silaznom redosljedu prema vrijednosti</title>
</head>
<body>

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
arsort($age);
print_r($age);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [Marija] => 45 [Jovana] => 35 [Miloš] => 29 [Petar] => 14 )



Sortiranje asocijativnih nizova u uzlaznom redosljedu po ključu

Funkcija ksort() sortira elemente asocijativnog niza u uzlaznom redosljedu pomoću njihovih ključeva. Čuva povezanost između ključa i njegovih vrijednosti tokom sortiranja, isto kao i asort() funkcija.

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
ksort($age);
print_r($age);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP asocijativnih nizova u uzlaznom redosljedu po ključu</title>
</head>
<body>

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
ksort($age);
print_r($age);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [Jovana] => 35 [Petar] => 14 [Marija] => 45 [Miloš] => 29 )



Sortiranje asocijativnih nizova u silaznom redosljedu po ključu

Funkcija krsort() sortira elemente asocijativnog niza u silaznom redosljedu pomoću njihovih ključeva. Čuva povezanost između ključeva i njegovih vrijednosti tokom sortiranja, isto kao i funkcija arsort().

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
krsort($age);
print_r($age);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Sortiranje PHP asocijativnih nizova u silaznom redosljedu po ključu</title>
</head>
<body>

<?php
// Definisanje niza
$age = array("Miloš"=>29, "Petar"=>14, "Marija"=>45, "Jovana"=>35);
 
// Sortiranje i ispis niza
krsort($age);
print_r($age);
?>

</body>
</html>

Ova izjava print_r() daje sljedeći izlaz:


Array ( [Miloš] => 29 [Marija] => 45 [Petar] => 14 [Jovana] => 35 )