In diesem Tutorial erkläre ich euch wie man einen so genannten "Bubblesort" in PHP mit ein Array realisiert. Der Bubblesort ist eine Sortier- Funktion welche Schritt für Schritt die Elemente überprüft und von kleiner nach größer sortiert. Man nennt dies auch in der Fachsprache auf Deutsch "Blasensortierung".
Um den Bubblesort zu realisieren verwende ich eine PHP Function welche die Array Elemente mit zwei For-Schleifen durchläuft. In diesen schleifen prüfe ich mit einer IF Anweisung, ob das Element größer ist als das vorhergehende.
Nachfolgend das Beispiel:
<?php
/**
* @author Nico Schubert
* @copyright Copyright © 2011, Nico Schubert
*/
function bubblesort($bubblesort_array = array ()) {
$anz = count($bubblesort_array);
$temp='';
for ($a = 0; $a < $anz; $a++) {
for ($b = 0; $b < $anz -1; $b++) {
if ($bubblesort_array[$b +1] < $bubblesort_array[$b]) {
$temp = $bubblesort_array[$b];
$bubblesort_array[$b] = $bubblesort_array[$b +1];
$bubblesort_array[$b +1] = $temp;
}
}
}
return $bubblesort_array;
}
$bubblesort_array[]='14';
$bubblesort_array[]='8';
$bubblesort_array[]='12';
$bubblesort_array[]='1';
echo 'Ausgabe des unsortierten Array:';
echo '<pre>';
print_r($bubblesort_array);
echo '</pre>';
echo 'Ausgabe des sortierten Array:';
echo '<pre>';
print_r(bubblesort($bubblesort_array));
echo '</pre>';
?>
Die Ausgabe würde folgendermaßen aussehen:
Ausgabe des unsortierten Array:
Array ( [0] => 14 [1] => 8 [2] => 12 [3] => 1 )
Ausgabe des sortierten Array:
Array ( [0] => 1 [1] => 8 [2] => 12 [3] => 14 )
Ich empfehle euch auch noch alternativ den Beitrag zur "
Sortierung von Arrays" euch anzusehen. Dort werden noch andere Möglichkeiten vorgestellt. Solltet ihr noch die ein oder andere Frage haben, so meldet euch einfach im
Forum.