Multidimensionale Arrays

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

  • Multidimensionale Arrays

    Ich habe innerhalb meines Skript folgendes multidimensionale Array geschrieben:

    $ergebnis[0][0] = "alle Veranstaltungen";
    $ergebnis[0][1] = mysql_num_rows($result);
    $ergebnis[0][2] = calc_ranking_v_frage1_2($result);
    $ergebnis[0][3] = calc_ranking_v_frage3_4($result);
    $ergebnis[0][4] = round(($rang1_2 + $rang3_4)/2,2);

    Dies ganze sollte nun in einer Tabelle ausgegeben werden:

    echo "<tr>";
    echo "<td width='20%'>$ergebnis[0][0]</td>";
    echo "<td width='20%' align='center'>$ergebnis[0][1]</td>";
    echo "<td width='20%' align='center'>$ergebnis[0][2]</td>";
    echo "<td width='20%' align='center'>$ergebnis[0][3]</td>";
    echo "<td width='20%' align='center'>$ergebnis[0][4]</td>";
    echo "</tr>";

    Als Ergebnis erhalte ich folgende Ausgabe:

    Array[0]
    Array[1]
    Array[2]
    Array[3]
    Array[4]

    anstatt also die gespeicherten Werte zu bekommen.

    Meine Frage:
    Wie muss die Ausgabe aussehen damit die Werte augegeben werden?


    Vielen Dank für alle Antworten.

  • #2
    Mal ein var_dump($ergebnis) gemacht? Desweiteren solltest du nicht versuchen PHP-Code als PHP in ein Array zu schreiben. Wenn schon, dann nur als String
    PHP-Code:
    //statt
    $ergebnis[0][0] = "alle Veranstaltungen";
    $ergebnis[0][1] = mysql_num_rows($result);
    $ergebnis[0][2] = calc_ranking_v_frage1_2($result);
    $ergebnis[0][3] = calc_ranking_v_frage3_4($result);
    $ergebnis[0][4] = round(($rang1_2 $rang3_4)/2,2);

    //dies
    $ergebnis[0][0] = "alle Veranstaltungen";
    $ergebnis[0][1] = 'mysql_num_rows($result)';
    $ergebnis[0][2] = 'calc_ranking_v_frage1_2($result)';
    $ergebnis[0][3] = 'calc_ranking_v_frage3_4($result)';
    $ergebnis[0][4] = 'round(($rang1_2 + $rang3_4)/2,2)'
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Der Tipp war hilfreich zur Fehlerbeseitigung, aber Ausgabe funktioniert noch nicht:

      $ergebnis[0][1] = $n;
      $ergebnis[0][2] = $rang1_2;
      $ergebnis[0][3] = $rang3_4;
      $ergebnis[0][4] = $durchschnitt;

      Ein var_dump($ergebnis) zeigt, dass das Array alle Werte enthalt:

      array(10) { [0]=> array(5) { [0]=> string(20) "alle Veranstaltungen" [1]=> int(663) [2]=> float(3.53) [3]=> float(4.78) [4]=> float(4.16) } ...

      Allerdings läuft die Ausgabe noch nicht:

      for($i = 0; $i <= 9;$i++)
      {
      echo "<tr>";
      echo "<td width='20%'>$ergebnis[$i][0]</td>";
      echo "<td width='20%' align='center'>$ergebnis[$i][1]</td>";
      echo "<td width='20%' align='center'>$ergebnis[$i][2]</td>";
      echo "<td width='20%' align='center'>$ergebnis[$i][3]</td>";
      echo "<td width='20%' align='center'>$ergebnis[$i][4]</td>";
      echo "</tr>";
      }

      Hier gibt es auch weiterhin als Ausgabe:

      Array[0] Array[1] Array[2] Array[3] Array[4]


      Vorschläge?

      Kommentar


      • #4
        Wir haben hier PHP-Tags! Nutze Sie, dann wird die Macht mit dir sein!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Original geschrieben von jahlives
          Desweiteren solltest du nicht versuchen PHP-Code als PHP in ein Array zu schreiben.
          Das will er ja gar nicht, sondern Das Resultat der Funktionen. Das Problem ist aber die Stringverknüpfung. Einfache nummerische Array-Elemente funktionieren problemlos inerhalb von Anführungszeichen, nicht aber mehrdimensionale. Deshalb:
          PHP-Code:
           ...
          echo 
          "<td width='20%'>" $ergebnis[0][0] . "</td>";
          ... 
          Gruss
          H2O

          Kommentar


          • #6
            Danke genau dies war es.

            Bin da mittlerweile auch drauf gestossen hatte den Workareound:

            for($i = 0; $i <= 9;$i++)
            {
            $ausgabe0 = $ergebnis[$i][0];
            $ausgabe1 = $ergebnis[$i][1];
            $ausgabe2 = $ergebnis[$i][2];
            $ausgabe3 = $ergebnis[$i][3];
            $ausgabe4 = $ergebnis[$i][4];

            echo "<tr>";
            echo "<td width='20%'>$ausgabe0</td>";
            echo "<td width='20%' align='center'>$ausgabe1</td>";
            echo "<td width='20%' align='center'>$ausgabe2</td>";
            echo "<td width='20%' align='center'>$ausgabe3</td>";
            echo "<td width='20%' align='center'>$ausgabe4</td>";
            echo "</tr>";
            }

            geschrieben ohne mir der Verknüpfung bewusst zu sein.

            Vielen Dank!

            Kommentar


            • #7
              Einfache nummerische Array-Elemente funktionieren problemlos inerhalb von Anführungszeichen, nicht aber mehrdimensionale. Deshalb:
              Das wusste ich ned. Danke für die Aufklärung. Jetzt weiss ich auch warum ich Strings immer in ' schreibe, dann habe ich solche Probleme nie
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X