2016-04-01 3 views
1

gegeben, diese Datenstruktur:

array(2) { 
    [0] array(7) { 
     ["model_id"] 218 
     ["total"] 10 
     ["brand"] "This Brand" 
     ["model_name"] "This Name" 
     ["picture"] "this pic.jpg" 
     ["color"] "Black" 
     ["sizes"] array(3) { 
      ["4"] "10 %" 
      ["5"] "80 %" 
      ["6"] "10 %" 
     } 
    } 
    [1] array(7) { 
     ["model_id"] 219 
     ["total"] 10 
     ["brand"] "This Brand" 
     ["model_name"] "ThatName" 
     ["picture"] "that pic.jpg" 
     ["color"] "Black" 
     ["sizes"] array(3) { 
      ["4"] "20 %" 
      ["5"] "50 %" 
      ["6"] "30 %" 
     } 
    } 
} 

Wie können Sie Schleife in Größen als $key => $value?

Was ich versucht habe, funktioniert nicht so weit, wie verschachtelte Schleifen.

foreach($array as $i){ 

      foreach($i as $z){ 

       foreach($z as $key => $value){ 

        print_r($key); 

       } 
      } 
     } 
    } 

Ergebnisse in Fehler: Invalid argument supplied for foreach()

+1

Ihre Datenstruktur ist JSON, kein PHP-Array. Ist dir das bewusst? Sie suchen nach rekursiven Aufrufen einer Funktion: Die Funktion ruft sich selbst auf, wenn sie tiefer in das Array einsteigen will. – klaar

+0

es sieht aus wie json Daten zuerst müssen Sie diesen Wert von json_decode Funktion dekodieren. –

+0

change 'foreach ($ i als $ z)' zu 'foreach ($ i ['size'] als $ kye => $ value)' und entferne die nächste foreach. Ich denke du hast eine extra foreach –

Antwort

4
foreach($array as $i){ 
    foreach($i['sizes'] as $key => $value){ 
     echo $key.'->'.$value; 
    }  
} 
0
$arrayas = json_decode($array); 
foreach($arrayas $i){ 

     foreach($i as $z){ 

      foreach($z as $key => $value){ 

       print_r($key); 

      } 
     } 
    } 
} 

versuchen dieses

0

Bitte versuchen Sie diese

$decarray = json_decode($array); 

foreach($decarray as $keyDec => $valArr){ 
    foreach($valArr as $keyOuter => $valOuter){ 
     if($keyOuter == "sizes"){ 
      foreach($valOuter as $keyInner => $valInner){ 
       echo $keyInner.":".$valInner '' 
      } 
     } 
    } 
}