Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Spalte in Array ansprechen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Spalte in Array ansprechen

    Hallo zusammen
    Ich habe einen mehrdimensionalen array: $rows
    Wenn ich nun eine Schlaufe mache, dann kann ich ja die Spalten ansprechen.
    PHP-Code:
    foreach ($row as $key) { echo $key[2] . '<br>'; } 
    Gibt es auch ein Möglichkeit diesen $key[2] ohne eine foreach -Schlaufe anzusprechen?
    Also irgendwie
    PHP-Code:
    echo $rows => $key[2
    ??
    Vielen Dank für die Hilfe!


  • #2
    PHP-Code:
    echo $row[0][2]; 
    wenn es 0 ist
    ansonsten mal nachschauen

    PHP-Code:
    print_r ($row); 
    as $key ist sinngemäß die falsche bezeichnung

    PHP-Code:
    foreach( $row as $val)
    oder
    foreach ($row as $key => $val

    Kommentar


    • #3
      eine Schlaufe mache
      Schleife

      Gibt es auch ein Möglichkeit diesen $key[2]
      Du kannst einzelne Elemente über deren Index ansprechen, zB:
      PHP-Code:
      echo $row[1][2]; 
      Mit print_r() oder var_dump() siehst du die Struktur des Arrays, also Indexwert etc..

      Siehe ev. auch: http://php.net/manual/en/function.array-column.php
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Wenn du dir mit print_r() dein Array ausgibst, siehst du alle Arraykeys. Je nach Ebene musst du dann nur den entsprechenden Key an deine Array-Variable schreiben um den Wert zu bekommen.

        1. Ebene
        $array[key]

        2. Ebene

        $array[key][key]
        .

        Kommentar


        • #5
          Vielen Dank!
          Ich finde nun einen Wert
          PHP-Code:
          echo $row[1][2]; 
          Aber wenn ich nun alle $row[xy][2] haben möchte?
          Also alle 3.Spalten der rows?
          Habe es so progiert, aber das geht natürlich nicht..
          PHP-Code:
          echo $row[][7].<'br'>; 

          Kommentar


          • #6
            Zitat von winter Beitrag anzeigen
            Vielen Dank!
            Ich finde nun einen Wert
            PHP-Code:
            echo $row[1][2]; 
            Aber wenn ich nun alle $row[xy][2] haben möchte?
            Also alle 3.Spalten der rows?
            Habe es so progiert, aber das geht natürlich nicht..
            PHP-Code:
            echo $row[][7].<'br'>; 
            Was alle 3.???
            PHP-Code:
            echo $row[1][0];
            echo 
            $row[1][1];
            echo 
            $row[1][2]; 
            dann machst du dein fetch in einer while schleife

            PHP-Code:
            while ($row mysqli_fetch... ($res)) {
              echo 
            $row[2];

            Kommentar


            • #7
              PHP-Code:
              <?php
               
              foreach($array as $row){ //gehe alle Zeilen durch
                
              echo $row[2]; // gebe für jede Zeile Spalte 3 aus
               
              }
              ?>
              .

              Kommentar


              • #8
                Vielen Dank für eure Antworten!
                @Kiboman: Ich habe keine DB
                @kremser: Ich hätte das ohne foreach machen wollen, aber das geht wohl nicht?
                Wenn ich die Schleife dann schliesse, sind sie ja alle wieder weg.
                Ich hätte einfach direkt die Spalte anpeilen wollen, wie ich jede einzelne Zelle ansteuern kann.
                Aber das geht wohl nicht..
                PHP-Code:
                echo $row[0][2];
                echo 
                $row[1][2];
                echo 
                $row[2][2]; 
                echo 
                $row[3][2];  // aber ohne schreiben, irgendwie direkt.. 

                Kommentar


                • #9
                  Spalte in Array ansprechen

                  Zitat von winter
                  Ich hätte das ohne foreach machen wollen, aber das geht wohl nicht?
                  Warum wehrst du dich denn gegen foreach? Für das was du ( scheinbar ) erreichen möchtest ist foreach prädestiniert. Damit musst du nicht mal alle Inhalte ( Anzahl ) aus dem Array kennen.
                  Delirius

                  PHP - Grundlagen / PDO - Tutorial / PDO - Dokumentation

                  Kommentar


                  • #10
                    Ich hätte das ohne foreach machen wollen,
                    Dafür ist foreach doch eigentlich da...

                    Du kannst auch sowas machen, aber ob das "der richtige" Weg ist (array_column() ab 5.5)

                    PHP-Code:
                    $row[0][2] = "a";
                    $row[1][2] = "b";
                    $row[2][2] = "c"
                    $row[3][2] = "d";

                    echo 
                    implode("\n"array_column($row2)) 
                    Code:
                    a
                    b
                    c
                    d
                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar


                    • #11
                      Herzlichen Dank für all eure Antworten.
                      Ich habe das Problem, dass ich den foreach schliessen muss und dann sind die Daten jeweils verloren..
                      Aber ich sehe, es geht wohl wirklich nur so.

                      Kommentar


                      • #12
                        Oh je, ein klarer Fall für die Grundlagen-Polizei.

                        Kommentar


                        • #13
                          dass ich den foreach schliessen muss
                          Hä? Wie meinst du das?

                          Du kannst ja auch zB in der Schleife ein anderes zweites Array erstellen und dir Werte die du später anderweitig brauchst im Zuge des Durchlaufes speichern, oder wie auch immer. Wenn du mal ein konkretes Beispiel mit Code geben kannst, dann kann man dir sicher helfen, aber so ist es nach 1,5 Seiten immer noch ein herumgestochere im Nebel.
                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Vielen Dank hausl
                            Wenn du tatsächlich noch mehr Geduld hast, versuche ich mein Problem genauer zu erklären:
                            Ich habe zwei unterschiedliche Datensätze in Arrays eingelesen ($row und $row2).
                            Schlussendlich möchte ich von beiden Datensätzen Daten in einen Table schreiben. Im Moment schreibe ich das mühsam in die anderen Variablen rein.
                            Denn wenn ich den zweiten foreach zu spät schliesse, dann wird jeder Datensatz mehrfach angezeigt. Wenn ich ihn aber schliesse, dann gehen die Variablen $key2 verloren.
                            Darum kam mir die Idee, dass ich ev. die Variablen auch anders holen könnte...
                            PHP-Code:
                            echo "<table>";
                                foreach (
                            $rows as $key) {
                                               foreach (
                            $rows2 as $key2) {
                                                    if (
                            $key[18] == $key2[5]) {
                                                        
                            $key[50]=$key2[10];   // schreibe Daten von rows2 in den ersten row rein.
                                                         
                            $key[51]=$key2[11]; 
                                                         
                                                                         } 
                                               } 

                             if (
                            $key[4]==$var) {
                                  
                            echo 
                            "<tr> 
                                <td>"
                            .$key[7]." ".$key[8]."</td> 
                                <td>"
                            .$key[33]."</td>
                                <td>"
                            .$key2[28]."</td> //wäre praktisch, wenn ich $key2 noch hätte..
                                 } 
                                    }
                                echo "
                            </table>";

                            Kommentar


                            • #15
                              schreib bitte erst mal vernüftigen Code, richtig einrücken und wie du siehst bist du mit den Anführungszeichen auch durcheinander gekommen
                              Fatal Error: Windows wird gestartet

                              Wie administriert man ein Netzwerk: Beispiel

                              Kommentar

                              Lädt...
                              X