Ankündigung

Einklappen
Keine Ankündigung bisher.

ARRAY IF-Abfrage mehrdimensional

Einklappen

Neue Werbung 2019

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

  • ARRAY IF-Abfrage mehrdimensional

    Hallo, kann mir jemand sagen warum das nicht funktioniert?

    PHP-Code:
    <? $ai = 0;  
                 while($ai < count($ausgabe))  
                  {           $wert = $ausgabe[$ai][2];             
                                          if($wert=="Abi17a")  
                                            {  
                                            echo "YEAHHHH";  
                            }        else { echo "$wert "; }  
                  
                                
     
                      $ai++;  
                   }   ?>
    Abfragen Ausgabe :
    Code:
    Abi15c Abi16b Abi17b Abi15d Abi17a Abi17a Abi16a Abi17a Abi17a Abi17d Abi16d


    ARRAY-INHALT
    Code:
    Array  
    (  
        [0] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi15c  
                [3] => DEU  
                [4] => 1-2  
                [5] => C-325  
                [6] =>  Doppelaufsicht  
                [7] =>  (E) Übung: Probeabi  
            )  
     
        [1] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi16b  
                [3] => WIL  
                [4] => 7-8  
                [5] => C-410  
                [6] =>  fällt aus  
                [7] =>    
            )  
     
        [2] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi17b  
                [3] => DEU  
                [4] => 3-4  
                [5] => C-332  
                [6] =>  Vertretung  
                [7] =>  (V) Mathematik  
            )  
     
        [3] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi15d  
                [3] => DEU  
                [4] => 5-6  
                [5] => C411  
                [6] =>  fällt aus  
                [7] =>  (A) Arbeitsauftrag z.H.  
            )  
     
        [4] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi17a  
                [3] => SPO  
                [4] => 3-4  
                [5] => FSH1  
                [6] =>  mit Aufgaben beschäftigt  
                [7] =>  (E) A. Hack  
            )  
     
        [5] => Array  
            (  
                [0] => Fr.  
                [1] => 21.11.  
                [2] => Abi17a  
                [3] => GMK  
                [4] => 5-6  
                [5] => C332  
                [6] =>  fällt aus  
                [7] =>  (A) Arbeitsauftrag z.H.  
            )  
     
        [6] => Array  
            (  
                [0] => Mo.  
                [1] => 01.12.  
                [2] => Abi16a  
                [3] => DEU  
                [4] => 1-2  
                [5] => C330  
                [6] =>  fällt aus  
                [7] =>  (A) Arbeitsauftrag z.H.  
            )  
     
        [7] => Array  
            (  
                [0] => Mo.  
                [1] => 01.12.  
                [2] => Abi17a  
                [3] => DEU  
                [4] => 7-8  
                [5] => C332  
                [6] =>  mit Aufgaben beschäftigt  
                [7] =>  (E) K. Röben  
            )  
     
        [8] => Array  
            (  
                [0] => Mo.  
                [1] => 01.12.  
                [2] => Abi17a  
                [3] => DEU  
                [4] => 9-10  
                [5] => C332  
                [6] =>  fällt aus  
                [7] =>  (A) Arbeitsauftrag z.H.  
            )  
     
        [9] => Array  
            (  
                [0] => Mo.  
                [1] => 08.12.  
                [2] => Abi17d  
                [3] => SPO  
                [4] => 3-4  
                [5] => FSH1  
                [6] =>  Doppelaufsicht  
                [7] =>  (Z) U. Häsemeyer  
            )  
     
        [10] => Array  
            (  
                [0] => Mo.  
                [1] => 08.12.  
                [2] => Abi16d  
                [3] => SPO  
                [4] => 7-8  
                [5] => FSH1  
                [6] =>  fällt aus  
                [7] =>    
            )  
     
    )

  • #2
    Was funktioniert daran denn nicht? Und warum ist das so eigenartig eingerückt?

    Arrays bitte für solche Fälle per var_export() posten, damit man den Code einfach testen kann.

    Kommentar


    • #3
      Ok, ich hoffe ich konnte das jetzt besser veranschaulichen.



      Code:
      PHP-Code:
          <?        $ai = 0;
                   while($ai < count($ausgabe))
                    {
                      $wert = $ausgabe[$ai][2]; 
                          if($wert=="Abi17a")
                            { echo "YEAHHHH"; }      
                          else { echo "Der Wert aus dem ARRAY[$ai][2] ( $wert ) ist nicht ( Abi17a ) <br> "; }
                  
                       $ai++;
                     } ?>


      Ausgabe:
      Code:
       Der Wert aus dem ARRAY[0][2] ( Abi16a ) ist nicht ( Abi17a ) 
       Der Wert aus dem ARRAY[1][2] ( Abi17a ) ist nicht ( Abi17a ) 
       Der Wert aus dem ARRAY[2][2] ( Abi17a ) ist nicht ( Abi17a ) 
       Der Wert aus dem ARRAY[3][2] ( Abi17d ) ist nicht ( Abi17a ) 
       Der Wert aus dem ARRAY[4][2] ( Abi16d ) ist nicht ( Abi17a )

      ARRAY: ( $ausgabe )
      Code:
      array (
        0 => 
        array (
          0 => 'Mo.',
          1 => '01.12.',
          2 => 'Abi16a',
          3 => 'DEU',
          4 => '1-2',
          5 => 'C330',
          6 => ' fällt aus',
          7 => ' (A) Arbeitsauftrag z.H.',
        ),
        1 => 
        array (
          0 => 'Mo.',
          1 => '01.12.',
          2 => 'Abi17a',
          3 => 'DEU',
          4 => '7-8',
          5 => 'C332',
          6 => ' mit Aufgaben beschäftigt',
          7 => ' (E) K. Röben',
        ),
        2 => 
        array (
          0 => 'Mo.',
          1 => '01.12.',
          2 => 'Abi17a',
          3 => 'DEU',
          4 => '9-10',
          5 => 'C332',
          6 => ' fällt aus',
          7 => ' (A) Arbeitsauftrag z.H.',
        ),
        3 => 
        array (
          0 => 'Mo.',
          1 => '08.12.',
          2 => 'Abi17d',
          3 => 'SPO',
          4 => '3-4',
          5 => 'FSH1',
          6 => ' Doppelaufsicht',
          7 => ' (Z) U. Häsemeyer',
        ),
        4 => 
        array (
          0 => 'Mo.',
          1 => '08.12.',
          2 => 'Abi16d',
          3 => 'SPO',
          4 => '7-8',
          5 => 'FSH1',
          6 => ' fällt aus',
          7 => ' ',
        ),
      )

      Kommentar


      • #4
        PHP-Code:
        <?php

        $ausgabe 
        = array (
          
        =>
          array (
            
        => 'Mo.',
            
        => '01.12.',
            
        => 'Abi16a',
            
        => 'DEU',
            
        => '1-2',
            
        => 'C330',
            
        => ' fällt aus',
            
        => ' (A) Arbeitsauftrag z.H.',
          ),
          
        =>
          array (
            
        => 'Mo.',
            
        => '01.12.',
            
        => 'Abi17a',
            
        => 'DEU',
            
        => '7-8',
            
        => 'C332',
            
        => ' mit Aufgaben beschäftigt',
            
        => ' (E) K. Röben',
          ),
          
        =>
          array (
            
        => 'Mo.',
            
        => '01.12.',
            
        => 'Abi17a',
            
        => 'DEU',
            
        => '9-10',
            
        => 'C332',
            
        => ' fällt aus',
            
        => ' (A) Arbeitsauftrag z.H.',
          ),
          
        =>
          array (
            
        => 'Mo.',
            
        => '08.12.',
            
        => 'Abi17d',
            
        => 'SPO',
            
        => '3-4',
            
        => 'FSH1',
            
        => ' Doppelaufsicht',
            
        => ' (Z) U. Häsemeyer',
          ),
          
        =>
          array (
            
        => 'Mo.',
            
        => '08.12.',
            
        => 'Abi16d',
            
        => 'SPO',
            
        => '7-8',
            
        => 'FSH1',
            
        => ' fällt aus',
            
        => ' ',
          ),
        );

        $ai 0;

        while (
        $ai count($ausgabe)) {
            
        $wert $ausgabe[$ai][2];

            if (
        $wert == "Abi17a") {
                echo 
        "YEAHHHH<br>\n";
            } else {
                echo 
        "Der Wert aus dem ARRAY[$ai][2] ( $wert ) ist nicht ( Abi17a ) <br>\n";
            }

            
        $ai++;
        }

        // Ausgabe hier:

        //Der Wert aus dem ARRAY[0][2] ( Abi16a ) ist nicht ( Abi17a ) <br>
        //YEAHHHH<br>
        //YEAHHHH<br>
        //Der Wert aus dem ARRAY[3][2] ( Abi17d ) ist nicht ( Abi17a ) <br>
        //Der Wert aus dem ARRAY[4][2] ( Abi16d ) ist nicht ( Abi17a ) <br>

        Kommentar


        • #5
          Ähm nein konntest du nicht. Ich rate dir den Umgang mit diversen Debug-Methoden zu erlernen, dann müsstest du so eine Frage nicht posten. Sei mir nicht böße, aber ich hab keinen Zeit + Lust das ganze zu kopieren und nachzustellen, also Debug es bitte selbst und sag dann was nicht geht.

          Dein Vorteil wäre dann: Du hast gelernt richtig Fehler zu finden aka "Debugging"
          Homepage: www.jplace.de

          Github: JohnnyDevNull

          Kommentar


          • #6
            OK... auf die Idee das array so zu testen bin ich ehrlich gesagt nicht gekommen.
            Ich hole mein array hier her:
            PHP-Code:
            $Website HomepageLaden($_url"");     
                                                

             function 
            Zwischen($string)
                {
                    
            preg_match_all('/<td(.*)class="tdtext">(.*?)<\\/td>/i'$string$treffer);
                    return 
            $treffer[0];
                }                                             
               
            $array Zwischen($Website);  

                
            $i 2;
                
            $x 0;
                
            $y 0;
                         while(
            $i count($array))
                           {    
                            
            $ausgabe[$y][$x] = $array[$i];   
                            
                            if (
            $x == 7){
                                  
            $y$y+1;
                                   
            $x 0;
                        }  else {
            $x++; }       
                
                         
            $i++;
                         } 
            Und da scheint auch der Fehler zu liegen.

            Kommentar


            • #7
              Ich würde im Zweifel auf irgendwas mit white space tippen (Leerzeichen, Zeilenumbrüche). Womöglich auch irgendwelche HTML-Tags.

              Lass dir einfach mal per var_dump die einzelnen Werte von $wert in der Schleife ausgeben. (Debugging.) Da sollte dir irgendeine Unregelmäßigkeit auffallen.

              Kommentar


              • #8
                Also, wenn ich das Array "per var_dump" ausgeben lasse, kommt der Ausgabe wert aus Beitrag 3 raus. Wenn ich die Ausgabe wie du in Beitrag 4 als array wieder verwende klappt es mit der Ausgabe.

                der Inhalt ist so doch der selbe.

                Kommentar


                • #9
                  Mach mal so. Ich hatte nicht bedacht, dass du dir das sicher im Browser ansiehst und nicht im Terminal.

                  PHP-Code:
                  while ($ai count($ausgabe)) {
                      
                  $wert $ausgabe[$ai][2];

                      echo 
                  '$wert = "' htmlspecialchars($wertENT_QUOTES'UTF-8') . '"<br>' "\n"// <-- die Zeile hinzugefügt

                      
                  if ($wert == "Abi17a") {
                          echo 
                  "YEAHHHH<br>\n";
                      } else {
                          echo 
                  "Der Wert aus dem ARRAY[$ai][2] ( $wert ) ist nicht ( Abi17a ) <br>\n";
                      }

                      
                  $ai++;

                  Kommentar


                  • #10
                    Danke mermshaus, habe den Fehler gefunden, der teil macht nicht das was ich erwarte.
                    Ich dachte ich bekomme so den wert dazwischen aber mein wert sieht dann so aus:
                    PHP-Code:
                                $Website'<td align="center" class="tdtext">Abi16a</td>';
                                function 
                    Zwischen($string)
                                    {
                                        
                    preg_match_all('/<td(.*)class="tdtext">(.*?)<\\/td>/i'$string$treffer);
                                        return 
                    $treffer[0];
                                    } 
                                
                    $WERT Zwischen($Website);  
                                echo 
                    "<pre>";   var_export($WERT);  echo "<pre>"
                    // Ausgabe : 
                    //<pre>array (
                    // 0 => '<td align="center" class="tdtext">Abi16a</td>',
                    //)<pre> 

                    Kommentar


                    • #11
                      Ah, ja. Wäre in dem Fall dann zum Beispiel: return trim($treffer[2]);

                      0: komplette Übereinstimmung
                      1: erstes capturing pattern "(.*)"
                      2: zweites capturing pattern "(.*?)"

                      Edit: trim() noch hinzugefügt, weil warum nicht.

                      Kommentar


                      • #12
                        Danke, Ohne trim() geht es wunderbar.

                        Kommentar

                        Lädt...
                        X