Ankündigung

Einklappen
Keine Ankündigung bisher.

Array sortieren. Anfänger braucht Hilfe

Einklappen

Neue Werbung 2019

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

  • Array sortieren. Anfänger braucht Hilfe

    Liebe Gemeinde,
    vielleicht ist jemand so freundlich und hilft mir weiter.

    Ich übernehme aus einer .txt Werte (Es handelt sich um geklickte Bewertungen) und kann diese in einer Schleife 'exploden' und mit echo ausgeben.
    Wo ich aber partout nicht weiterkomme: Ich möchte eine Art Top 10 daraus erstellen. Im Prinzip sind nur der $name und die dazugehörigen $Sterne wichtig.
    Ich müsste mir vermutlich ein Hilfsarray bauen (mehrdimensional?), in das Name und Sterne für alle Touren reingeschrieben werden und dann absteigend sortieren und die ersten 10 ausgeben.
    Bei der Umsetzung klemmt es aber gewaltig, vermutlich ist mir als Anfänger das "mehrdimensionale Array" noch zu hoch.

    Wäre klasse wenn jemand ein kurzes Umsetzungsbeispiel dazu hätte, vielen Dank!



    <?php
    header('Content-Type: text/html; charset=UTF-8');
    $datei = file("items.txt");

    for($a = 0; $a < count($datei); $a++)
    {
    $tour = explode("^", $datei[$a]);
    $sterne = round ($tour[1] / $tour[2],1);
    $name = substr($tour[0], 3);
    $gesamtpunkte = $tour[1];
    $voteanzahl = $tour[2];

    echo "<b>";
    echo $name;
    echo "</b>";
    echo "<br>";

    echo "Bewertung: ";
    echo "<font color='#FF0000'>";
    echo $sterne;
    echo "</font>";
    echo "<br>";

    echo "Gesamtpunkte: ";
    echo $gesamtpunkte;
    echo "<br>";

    echo "Anzahl der Votes: ";
    echo $voteanzahl;
    echo "<br><br>";

    }


    ?>

  • #2
    PHP-Code:
    <?php
    header
    ('Content-Type: text/html; charset=UTF-8');
    $datei file("items.txt");
    $alleTouren = array();
    for(
    $a 0$a count($datei); $a++)
    {
    $tour explode("^"$datei[$a]);
    $sterne round ($tour[1] / $tour[2],1);
    $name substr($tour[0], 3);
    $gesamtpunkte $tour[1];
    $voteanzahl $tour[2];
    $alleTouren[$name] = $sterne;
    echo 
    "<b>";
    echo 
    $name;
    echo 
    "</b>";
    echo 
    "<br>";

    echo 
    "Bewertung: ";
    echo 
    "<font color='#FF0000'>";
    echo 
    $sterne;
    echo 
    "</font>";
    echo 
    "<br>";

    echo 
    "Gesamtpunkte: ";
    echo 
    $gesamtpunkte;
    echo 
    "<br>";

    echo 
    "Anzahl der Votes: ";
    echo 
    $voteanzahl;
    echo 
    "<br><br>";

    }
    asort($alleTouren);

    array_splice($alleTouren010);
    echo 
    'Top Ten';
    foreach(
    $alleTouren as $name => $sterne){
    echo 
    $name.' - '.$sterne
    }
    ?>
    ist ungetestet
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

    Kommentar


    • #3
      Hallo BlackScorp,

      vielen Dank für die Hilfe. Klasse!

      Hinter "echo $name.' - '.$sterne" fehlte noch ein ";" und ich habe arsort statt asort genommen.

      "Splice" war mir völlig neu. Komischerweise musste ich die 0 und die 10 vertauschen damit es absteigend sortiert.
      Ich versuche jetzt erstmal alles in Ruhe zu verstehen und teste ein wenig.

      Nochmals herzlichen Dank.

      Kommentar


      • #4
        [MAN]array_splice[/MAN] schneidet teile aus einem array heraus, beginnt beim ersten parameter 0 und 10 teile werden herausgeschnitte

        [MAN]asort[/MAN]ist die methode um array zu sortieren, wahrscheinlich brauchste da eher [MAN]arsort[/MAN]
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

        Kommentar

        Lädt...
        X