Как отобразить этот многомерный массив в PHP? - PullRequest
0 голосов
/ 22 июня 2019

Мне нужно отобразить следующий код, чтобы модели автомобилей (Nissan, Mercedes, Ford) были бы <h1>, годы - <h3>, а элементы подмассива - * 1003.*.Как бы я это сделал?

$cars = array (
        array(
            "Nissan",
            2012,
            array (
                "power steering",
                "a/c",
            )
        ),

        array(
            "Mercedes",
            2013,
            array (
                "power steering",
                "leather seats",
                "sunroof"
            )
        ),

        array(
            "Ford",
            2010,
            array (
                "power steering",
                "a/c",
                "power windows",
                "window locks"
            )
        )
);

1 Ответ

3 голосов
/ 22 июня 2019

Мы могли бы просто захотеть определить string здесь в foreach, затем постоянно append к нему, когда мы проходим через наш массив:

$cars = array(
    array(
        "Nissan",
        2012,
        array(
            "power steering",
            "a/c",
        ),
    ),

    array(
        "Mercedes",
        2013,
        array(
            "power steering",
            "leather seats",
            "sunroof",
        ),
    ),

    array(
        "Ford",
        2010,
        array(
            "power steering",
            "a/c",
            "power windows",
            "window locks",
        ),
    ),
);

$html = '';
foreach ($cars as $key => $car) {
    $html .= '<h1>' . $car[0] . '</h1>';
    $html .= '<h3>' . $car[1] . '</h3>';
    $html .= '<ul>';
    foreach ($car[2] as $key => $attr) {
        $html .= '<li>' . $attr . '</li>';
    }
    $html .= '</ul>';
}

echo $html;

Вывод

<h1>Nissan</h1><h3>2012</h3><ul><li>power steering</li><li>a/c</li></ul><h1>Mercedes</h1><h3>2013</h3><ul><li>power steering</li><li>leather seats</li><li>sunroof</li></ul><h1>Ford</h1><h3>2010</h3><ul><li>power steering</li><li>a/c</li><li>power windows</li><li>window locks</li></ul>

Совет

Vivek_23 советует:

Просто взорвать часть li.

На основании чего нашкод, вероятно, будет выглядеть так же просто, как:

$html = '';
foreach ($cars as $car) {
    $html .= '<h1>' . $car[0] . '</h1>';
    $html .= '<h3>' . $car[1] . '</h3>';
    $html .= '<ul><li>' . implode('</li><li>', $car[2]) . '</li></ul>';
}

echo $html;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...