Az array_multisort() függvény

Rendezés array_multisort() függvénnyel


1. Példa.
Nem alkalmazunk array_multisort() függvényt.

<table width="800"  border="1"><tr><td>
<?php
$elso_tomb = array(1=>"Ferenc", 3=>"Zoltán", 0=>"János", 2=>"László", 6=>"Gyula", 4=>"Elemér", 5=>"Dénes");
echo "Első tömbünk tartalma.<br /><pre>";
print_r($elso_tomb);

echo "</pre></td><td><pre><u>Második tömbünk tartalma.</u> <br />";

$masodik_tomb = array("1 pont","2 pont","3 pont","4 pont","5 pont","2 pont","4 pont");	
print_r($masodik_tomb);
echo "</pre>";
?>
</td></tr></table>
Első tömbünk tartalma.
Array
(
    [1] => Ferenc
    [3] => Zoltán
    [0] => János
    [2] => László
    [6] => Gyula
    [4] => Elemér
    [5] => Dénes
)
Második tömbünk tartalma.
Array
(
    [0] => 1 pont
    [1] => 2 pont
    [2] => 3 pont
    [3] => 4 pont
    [4] => 5 pont
    [5] => 2 pont
    [6] => 4 pont
)

2. Példa: Versenyzők létszáma 7-fő.
Első tömb elemei tartalmazzák, a versenyzők neveit.
Második tömb elemei tartalmazzák, ki hány pontot kapott a feladat elvégzésére.
A végeredmény kiíratásánál, programunk a versenyzők nevéhez rendeli a kapott pontszámokat úgy, hogy a neveket ABC sorrendbe írja ki, a hozzájuk tartozó pontszámokkal együtt.


Az array_multisort() függvény.
Az első tömböt rendezzük ABC szerint, és hozzájuk rendeljük a második tömb tartalmát.
<?php
$elso_tomb = array(1=>"Ferenc", 3=>"Zoltán", 0=>"János", 2=>"László", 6=>"Gyula", 4=>"Elemér", 5=>"Dénes");
$masodik_tomb = array("1 pont","2 pont","3 pont","4 pont","5 pont","2 pont","4 pont");

array_multisort($elso_tomb,$masodik_tomb);
// Az array_multisort() rendezte a tömböket. Következhet az adatok kiíratása.

        // Az each() függvény elavult, ne alkalmazzuk. PHP 5.4.34. verziónál, még elfogadott.
             while (list($index, $tartalom) = each($elso_tomb))  {  echo "<br />$elso_tomb[$index] : $masodik_tomb[$index]";  }

// Az each() függvény helyett, alkalmazzuk a foreach() függvényt.
$i=0;
    foreach ($elso_tomb as $index => $adat) {
       echo $adat.' : '.$masodik_tomb[$i].'<br>';	   // Kiíratjuk az adatokat.
	   $i++;
    }
?>
Elavult each() függvény eredménye:

Dénes : 4 pont
Elemér : 2 pont
Ferenc : 1 pont
Gyula : 5 pont
János : 3 pont
László : 4 pont
Zoltán : 2 pont
A foreach() függvény eredménye:

Dénes : 4 pont
Elemér : 2 pont
Ferenc : 1 pont
Gyula : 5 pont
János : 3 pont
László : 4 pont
Zoltán : 2 pont


2. Újabb versenyt rendeznek, adatok nyílvántartására újabb tömb kell.
Most, három tömböt rendezünk.
<?php
$elso_tomb = array(1=>"Ferenc", 3=>"Zoltán", 0=>"János", 2=>"László", 6=>"Gyula", 4=>"Elemér", 5=>"Dénes");
$masodik_tomb = array("1 pont","2 pont","3 pont","4 pont","5 pont","2 pont","4 pont");
$harmadik_tomb = array(4,2,5,4,2,3,1);

array_multisort($elso_tomb,$masodik_tomb,$harmadik_tomb);
// Az array_multisort() rendezte a tömböket. Következhet az adatok kiíratása.

        // Az each() függvény elavult, ne alkalmazzuk. PHP 5.4.34. verziónál, még elfogadott.
          while (list($index, $tartalom) = each($elso_tomb))
            { echo "<br />$elso_tomb[$index] : $masodik_tomb[$index] : $harmadik_tomb[$index]"; }

// Az each() függvény helyett, alkalmazzuk a foreach() függvényt.

    foreach ($elso_tomb as $index => $adat) {
       echo $adat.' : '.$masodik_tomb[$index].' : '.$harmadik_tomb[$index].' pont<br>';	   // Kiíratjuk az adatokat..
    }
?>
Elavult each() függvény eredménye:

Dénes : 4 pont : 1
Elemér : 2 pont : 3
Ferenc : 1 pont : 4
Gyula : 5 pont : 2
János : 3 pont : 5
László : 4 pont : 4
Zoltán : 2 pont : 2
A foreach() függvény eredménye:

Dénes : 4 pont : 1 pont
Elemér : 2 pont : 3 pont
Ferenc : 1 pont : 4 pont
Gyula : 5 pont : 2 pont
János : 3 pont : 5 pont
László : 4 pont : 4 pont
Zoltán : 2 pont : 2 pont