PHP вложенный foreach - PullRequest
       7

PHP вложенный foreach

3 голосов
/ 23 июля 2011

Я думал, что понял php-массивы, но, похоже, не понимаю :( Это мой код:

<?php

// Create a magazines array
$magazines = array();

// Put 5 magazines on it
for($x=0;$x<5;$x++)
    $magazines[] = "Magazine " . $x ;


// Associate articles array to each magazine
foreach($magazines as $magazine){
    $articles[$magazine] = array();
    for($x=0;$x<3;$x++)
        $articles[$magazine] = $magazine . " - Article " . $x ;
}

// List them all
foreach($magazines as $magazine){
    echo $magazine . " has these articles: <br>";
    foreach($articles[$magazine] as $article)
        echo $article . "</br>";
}

?>

Он печатает только журналы, а не статьи внутри каждого журнала. Ясно, что есть что-то, чего я не понимаю в вложенных циклах foreach. Не могли бы вы мне помочь? Что я делаю неправильно? Заранее спасибо! :)

Ответы [ 2 ]

4 голосов
/ 23 июля 2011

Вы пропустили [] во вложенном цикле:

<?php

// Create a magazines array
$magazines = array();

// Put 5 magazines on it
for($x=0;$x<5;$x++)
    $magazines[] = "Magazine " . $x ;


// Associate articles array to each magazine
foreach($magazines as $magazine){
    $articles[$magazine] = array();
    for($x=0;$x<3;$x++)
        $articles[$magazine][] = $magazine . " - Article " . $x ;
}

// List them all
foreach($magazines as $magazine){
    echo $magazine . " has these articles: <br>";
    foreach($articles[$magazine] as $article)
        echo $article . "</br>";
}

?>

Этот фрагмент должен работать

2 голосов
/ 23 июля 2011

Попробуйте изменить эту часть кода:

$articles[$magazine][] = $magazine . " - Article " . $x ;
...