Matthias: Array sortieren

Warum funktioniert mein Sortier Algo nicht, komme einfach nicht drauf oder kann man nur durch so eine Art String_Cpy die Elemente vertauschen, bin in PHP noch nicht so fitt.

****************************************
<?php

session_start();

function sortelements($elemente, $elementnr, $richtung)
{

if($richtung == "hoch")
 {

$zwspeicher = $elemente[$elementnr];
  $elemente[$elementnr] = $elemente[$elementnr-1];
  $elemente[$elementnr-1] = $zwspeicher;

}
 else
 {
  $zwspeicher = $elemente[$elementnr+1];
  $elemente[$elementnr] = $elemente[$elementnr+1];
  $elemente[$elementnr] = $zwspeicher;
 }

}

if($_GET["richtung"])
{
 sortelements($elemente,$_GET["elementnr"],$_GET["richtung"]);
}

$count = count($elemente);

$url = explode('?',$REQUEST_URI);

for ($i=0; $i<$count; $i++)
{

$output .= "<tr><td>".$elemente[$i]."</td><td>";

if($i == 0);
 else
 {
  $output .= "<a href=".$url[0]."?elementnr=".$i."&richtung=hoch>hoch</a>";
 }

$output .= "</td><td>";

if($i == $count-1);
 else
 {
  $output .= "<a href=".$url[0]."?elementnr=".$i."&richtung=runter>runter</a>";
 }

$output .="</td></tr>";
}

?>

  1. Hallo Matthias,

    Warum funktioniert mein Sortier Algo nicht,

    ehrlich gesagt habe ich nicht verstanden, welchen der bekannten Sortieralgorithmen Du implementieren wolltest. Aber warum verwendest Du nicht die Sortierfunktionen von PHP, siehe dazu den Abschnitt Array-Funktionen im PHP-Handbuch. Ist da wirklich nichts passendes für Dich dabei?

    Wenn Du wirklich selbst einen Sortieralgorithmus schreiben willst, dann solltest Du Deinen Code etwas besser kommentieren, damit man sich vorstellen kann, was Du vorhast. Wikipedia hat eine schöne Seite zu Sortierverfahren.

    Freundliche Grüße

    Vinzenz

  2. echo $begrüßung;

    else
    {
      $zwspeicher = $elemente[$elementnr+1];
      $elemente[$elementnr] = $elemente[$elementnr+1];
      $elemente[$elementnr] = $zwspeicher;
    }

    Mir scheint, dass dieser Teil anders implementiert ist, als du es dir vorgenommen hattest.

    echo "$verabschiedung $name";