2011-12-27 11 views
1

J'ai un tableau multidimensionnel comme suit: -PHP - boucle foreach montrant la dernière rangée

$worksheet = array(
    'sheet 1' => array(
    '#1 sheet 1', 
    ' #2 sheet 1', 
    '#3 sheet 1' 
), 

    'sheet 2' => array(
    '#1 sheet 2', 
    '#2 sheet 2' 
), 

    'sheet 3' => array(
    '#1 sheet 3', 
    '#2 sheet 3' 
) 
); 

j'exécuter du code PHP comme ci-dessous:

foreach($worksheet as $ws=>$value) 
    echo $ws.'<br/>'; 
{ 
    foreach($value as $sheet=>$ivalue) 
    { 
    echo $ivalue.'<br/>'; 
    } 
} 

code ci-dessus ne produira que la dernière tableau comme suit:

 
sheet 1, sheet 2, sheet 3, #1 sheet 3, #2 sheet 3 

ce qui devait arriver à mon:

 
#1 sheet 1, #2 sheet 1, #3 sheet 1, #1 sheet 2, #2 sheet 2. 
+0

Essayez de nettoyer votre indentation avant de demander. – babonk

+0

Indentation mise à jour pour rendre le code plus lisible. @FirstLast, veuillez éditer votre question pour déplacer 'echo $ ws. '
'; 'où il réside réellement dans votre code. –

Répondre

1

Fixez votre syntaxe. echo n'est pas à l'intérieur du {} comme vous l'avez prévu. Autrement, PHP supposera que vous avez juste l'intention de faire l'écho, et ne réalisera pas que vous voulez faire une boucle interne.

Pour fixer:

foreach($worksheet as $ws=>$value) 
{ 
    echo $ws.'<br/>'; 
1

Parce que vous avez fait une erreur. Les deuxième et troisième lignes de votre code sont inversées. Le code devrait ressembler à ceci:

foreach($worksheet as $ws=>$value) 
{ 
     echo $ws.'<br/>'; 

Ainsi, votre code est mise en boucle avec le foreach externe par l'écho, puis, dans une « section » délimitée par les supports {, est en train de faire une autre boucle (la foreach intérieure) .

+0

remercie Aurelio De Rosa. –

1
echo $ws.'<br/>' 

doit être à l'intérieur des crochets

Questions connexes