Взять значения из многомерного массива - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть многомерный массив:

$carousel = array(
    array(
        "cite" => 'title_1',
        "blockquote" => 'description_1',
        "imgs" => 4
    ),
        array(
        "cite" => 'title_2',
        "blockquote" => 'description_2',
        "imgs" => 2
    )
);

Я хочу обернуть эту информацию в html и отображать изображения как значение imgs. Я могу отображать только изображения, но хочу связать цитаты и цитаты отдельно.

Я пытался использовать foreach, но безуспешно:

foreach ($carousel as $images){
    foreach ($images as $key => $value){
        echo $value . "\n";
        for ($i = 0; $i < $value; $i++) {
            echo("image url" . "\n\n");
        }
    }
}

Я получаю все значения при отображении $ value и изображений:

title_1
description_1
4
image url
image url
image url
image url

title_2
description_2
2
image url
image url

но я хочу использовать их отдельно, как это

<cite>title_1</cite>
<blockquote>description_1</blockquote>
<img></img> //4 times as specified in "imgs"
<img></img>
<img></img>
<img></img>

<cite>title_2</cite>
<blockquote>description_2</blockquote>
<img></img> //2 times as specified in "imgs"
<img></img>

Я ценю любое предложение.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Попробуйте это:

foreach ($carousel as $singleitem){
        echo "<cite>".$singleitem['cite']."</cite>
              <blockquote>".$singleitem['blockquote']."</blockquote>";
        for ($i = 0; $i < $singleitem['imgs']; $i++) { //loop through img
            echo("image url" . "<br/>");
        }
    }
0 голосов
/ 05 ноября 2018

У вас есть дополнительный цикл foreach, который вам не нужен.

Попробуйте это:

//loop through array
foreach($carousel as $values) {

    //echo cite info
    echo "<cite>{$values['cite']}</cite>";

    //echo blockquote info
    echo "<blockquote>{$values['blockquote']}</blockquote>";

    //loop until you have the same amount of <img> tags as defined in the `imgs` array element.
    for ($x = 1; $x <= $values['imgs']; $x++) {
        echo "<img></img>";
    }
}
...