Script in PHP4/5 funktionslos

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Script in PHP4/5 funktionslos

    moin,

    für mein Projekt brauchte ich eine Umsetzung des Dijkstra-Algorithmus in PHP, die ich auch gefunden habe (weiter unten). Das Problem ist aber, dass der Script nichts ausgibt, auch keine Fehlermeldung oder so(PHP5). Als ich in Google nachgesucht habe, habe ich weitere verzweifelte Menschen gefunden, die meinten, dass er in php3 einwandfrei läuft, ab php4 ist aber Schluss. Ich habe nirgendwo eine vernünftige Lösung für dieses Problem gefunden. Irgendeine Funktion wird wahrscheinlich nicht mehr unterstützt. Bitte um eure Hilfe.

    Vielen Dank im Voraus,
    Andrej

    PHP-Code:
    <?php
    $neighbors
    [A] = array(=> 2=> 3);
    $neighbors[B] = array(=> 2=> 1=> 4);
    $neighbors[C] = array(=> 1=> 5);
    $neighbors[D] = array(=> 3=> 2);
    $neighbors[E] = array(=> 2=> 4=> 1);
    $neighbors[F] = array(=> 5=> 1);


    function 
    dijkstra($neighbors$start) {
    $closest $start;
    while (isset(
    $closest)) {
    $marked[$closest] = 1;
    reset($neighbors[$closest]); 
    while(list(
    $vertex$distance) = each($neighbors[$closest])) { 
    if (
    $marked[$vertex])
    continue;
    $dist $paths[$closest][0] + $distance;
    if (!isset(
    $paths[$vertex]) || ($dist $paths[$vertex][0])) {
    $paths[$vertex] = $paths[$closest];
    $paths[$vertex][] = $closest;
    }
    }
    unset(
    $closest);
    reset ($paths);
    while(list(
    $vertex$path) = each($paths)) {
    if (
    $marked[$vertex])
    continue;
    $distance $path[0];
    if ((
    $distance $min) || !isset($closest)) {
    $min $distance;
    $closest $vertex;
    }
    }
    }
    return 
    $paths;
    }

    $paths dijkstra($neighbors"A");
    while(list(
    $vertex$path) = each($paths))
    echo 
    "$vertex: "implode(", "$path), "\n";
    ?>

  • #2
    PHP-Code:
    $paths dijkstra($neighbors"A");
    foreach(
    $paths as $vertex => $path) {
        echo 
    "$vertex: "implode(", "$path), "\n";

    Kommentar


    • #3
      Tut mir leid, aber ich brauche da mehr Erläterung bitte. Was genau wird da nicht mehr unterstützt?

      Kommentar


      • #4
        Achso, tut mir leid, hab gar nicht gemerkt.... :-) Vielen Dank

        Kommentar

        Lädt...
        X