ARRAY IF-Abfrage mehrdimensional


Seite: 1
Autor Beitrag
maximuff13
21.11.14 - 16:02:01 Uhr

Hallo, kann mir jemand sagen warum das nicht funktioniert?

  1.             $ai = 0;  
  2.              while($ai < count($ausgabe))  
  3.               {           $wert = $ausgabe[$ai][2];             
  4.                                       if($wert=="Abi17a")  
  5.                                         {  
  6.                                         echo "YEAHHHH";  
  7.                         }        else { echo "$wert "; }  
  8.               
  9.                             
  10.  
  11.                   $ai++;  
  12.                }    


Abfragen Ausgabe : Abi15c Abi16b Abi17b Abi15d Abi17a Abi17a Abi16a Abi17a Abi17a Abi17d Abi16d



ARRAY-INHALT
  1. Array  
  2. (  
  3.     [0] => Array  
  4.         (  
  5.             [0] => Fr.  
  6.             [1] => 21.11.  
  7.             [2] => Abi15c  
  8.             [3] => DEU  
  9.             [4] => 1-2  
  10.             [5] => C-325  
  11.             [6] =>  Doppelaufsicht  
  12.             [7] =>  (E) Übung: Probeabi  
  13.         )  
  14.  
  15.     [1] => Array  
  16.         (  
  17.             [0] => Fr.  
  18.             [1] => 21.11.  
  19.             [2] => Abi16b  
  20.             [3] => WIL  
  21.             [4] => 7-8  
  22.             [5] => C-410  
  23.             [6] =>  fällt aus  
  24.             [7] =>    
  25.         )  
  26.  
  27.     [2] => Array  
  28.         (  
  29.             [0] => Fr.  
  30.             [1] => 21.11.  
  31.             [2] => Abi17b  
  32.             [3] => DEU  
  33.             [4] => 3-4  
  34.             [5] => C-332  
  35.             [6] =>  Vertretung  
  36.             [7] =>  (V) Mathematik  
  37.         )  
  38.  
  39.     [3] => Array  
  40.         (  
  41.             [0] => Fr.  
  42.             [1] => 21.11.  
  43.             [2] => Abi15d  
  44.             [3] => DEU  
  45.             [4] => 5-6  
  46.             [5] => C411  
  47.             [6] =>  fällt aus  
  48.             [7] =>  (A) Arbeitsauftrag z.H.  
  49.         )  
  50.  
  51.     [4] => Array  
  52.         (  
  53.             [0] => Fr.  
  54.             [1] => 21.11.  
  55.             [2] => Abi17a  
  56.             [3] => SPO  
  57.             [4] => 3-4  
  58.             [5] => FSH1  
  59.             [6] =>  mit Aufgaben beschäftigt  
  60.             [7] =>  (E) A. Hack  
  61.         )  
  62.  
  63.     [5] => Array  
  64.         (  
  65.             [0] => Fr.  
  66.             [1] => 21.11.  
  67.             [2] => Abi17a  
  68.             [3] => GMK  
  69.             [4] => 5-6  
  70.             [5] => C332  
  71.             [6] =>  fällt aus  
  72.             [7] =>  (A) Arbeitsauftrag z.H.  
  73.         )  
  74.  
  75.     [6] => Array  
  76.         (  
  77.             [0] => Mo.  
  78.             [1] => 01.12.  
  79.             [2] => Abi16a  
  80.             [3] => DEU  
  81.             [4] => 1-2  
  82.             [5] => C330  
  83.             [6] =>  fällt aus  
  84.             [7] =>  (A) Arbeitsauftrag z.H.  
  85.         )  
  86.  
  87.     [7] => Array  
  88.         (  
  89.             [0] => Mo.  
  90.             [1] => 01.12.  
  91.             [2] => Abi17a  
  92.             [3] => DEU  
  93.             [4] => 7-8  
  94.             [5] => C332  
  95.             [6] =>  mit Aufgaben beschäftigt  
  96.             [7] =>  (E) K. Röben  
  97.         )  
  98.  
  99.     [8] => Array  
  100.         (  
  101.             [0] => Mo.  
  102.             [1] => 01.12.  
  103.             [2] => Abi17a  
  104.             [3] => DEU  
  105.             [4] => 9-10  
  106.             [5] => C332  
  107.             [6] =>  fällt aus  
  108.             [7] =>  (A) Arbeitsauftrag z.H.  
  109.         )  
  110.  
  111.     [9] => Array  
  112.         (  
  113.             [0] => Mo.  
  114.             [1] => 08.12.  
  115.             [2] => Abi17d  
  116.             [3] => SPO  
  117.             [4] => 3-4  
  118.             [5] => FSH1  
  119.             [6] =>  Doppelaufsicht  
  120.             [7] =>  (Z) U. Häsemeyer  
  121.         )  
  122.  
  123.     [10] => Array  
  124.         (  
  125.             [0] => Mo.  
  126.             [1] => 08.12.  
  127.             [2] => Abi16d  
  128.             [3] => SPO  
  129.             [4] => 7-8  
  130.             [5] => FSH1  
  131.             [6] =>  fällt aus  
  132.             [7] =>    
  133.         )  
  134.  
  135. )  
Ditti4
22.11.14 - 15:27:35 Uhr

Hier stand Blödsinn, weil ich deinen Code nicht richtig gelesen habe.
Achtzig
24.11.14 - 06:54:52 Uhr

Kann es sein, daß da noch unerwünschte Leerzeichen vorhanden sind?

Ändere doch mal die Zeile 7 in

echo "-$wert- ";

Wenn dann "-Abi17a - " ausgegeben wird (einer der Striche nicht direkt an Abi17a), solltest Du die überflüssigen Leerzeichen aus dem Array entfernen.
maximuff13
24.11.14 - 10:18:06 Uhr

Danke, habe meinen Fehler schon gefunden:
  1.             <?$Website'<td align="center" class="tdtext">Abi16a</td>';  
  2.             function Zwischen($string)  
  3.                 {  
  4.                     preg_match_all('/<td(.*)class="tdtext">(.*?)<\/td>/i'$string$treffer);  
  5.                     return $treffer[0];  
  6.                 }   
  7.             $WERT Zwischen($Website);    
  8.             echo "<pre>";   var_export($WERT);  echo "<pre>";   
  9. // Ausgabe :   
  10. //<pre>array (  
  11. // 0 => '<td align="center" class="tdtext">Abi16a</td>',  
  12. //)<pre>  
  13. ?>  


ich dachte ich bekomme so den wert dazwischen und nicht alles.
Achtzig
24.11.14 - 18:57:33 Uhr

Oha

Bei regulären Ausdrücken habe ich auch öfters mal Aussetzer
Kabarakh
28.11.14 - 23:41:41 Uhr

also über n array würd ich immer mit foreach iterieren, damit so aktionen wie

  1.  
  2. while ($a < count($array)) {  
  3. do_something($array[$a]);   
  4. }  
  5.  


nicht nötig werden. (und count() vorher in ne variable machen dass nicht bei jedem durchlauf der count neu gelesen werden muss, aber das ist n anderes thema)

und bei preg_match_all ist im ergebnis in [0] öfter mehr als man denkt, schau mal in [1]
anarchopunk
26.02.15 - 23:03:23 Uhr

Dass der Ausdruck überhaupt funktioniert, wundert mich grade (ohne zu testen). Dachte da müsste ich in diesem Fall mit den .* hinten ein u anhängen, dass der ungreedy wird?
SammysHP
27.02.15 - 14:32:58 Uhr

Das passiert schon durch das Fragezeichen in .*?
anarchopunk
28.02.15 - 00:09:57 Uhr

Aber bei dem <td(.*)class [...] steht kein Fragezeichen..?
SammysHP
28.02.15 - 10:35:29 Uhr

Stimmt, interessant.
Seite: 1

- Obige Beiträge stellen keine Äußerung oder Meinung von Pytal oder dessen Betreiber dar -