简体   繁体   English

如何遍历具有不同长度的多维数组-PHP

[英]How to loop through multidimensional arrays with deffierent lengths - PHP

I'm trying to loop through a multidimensional array. 我试图遍历多维数组。 Each array's sub-array has a different number of values. 每个数组的子数组都有不同数量的值。 How would I loop through this to output a list item for each cars' value? 我将如何循环浏览以输出每辆车的价值的清单项目?

$cars = array (
        array("Volvo",1,2,3),
        array("BMW",4,5),
        array("Saab",6,7,8,9),
        array("Land Rover",10),
);

$carsLength = count($cars);
for ($row = 0; $row < $carsLength; $row++) {
    echo "<p><b>Row number $row</b></p>";
    echo "<ul>";
        $listLength = count($bullet);
        for ($bullet = 0; $bullet < $listLength; $bullet++) {
            echo "<li>".$cars[$row][$bullet]."</li>";
        }
    echo "</ul>";
}

You need to foreach no index maintainance required, 您无需要求任何索引维护,

foreach ($cars as $key => $value) {
    echo "<p><b>Row number $key</b></p>";
    echo "<ul>";
    foreach ($value as $value1) {
        echo "<li>" . $value1 . "</li>";
    }
    echo "</ul>";
}

The code can be further simplified with a only a foreach and implode. 只需使用foreach和爆破即可进一步简化代码。

Implode creates a string from an array with the "glue" in between. Implode通过介于两者之间的“胶水”从数组创建一个字符串。

$cars = array (
        array("Volvo",1,2,3),
        array("BMW",4,5),
        array("Saab",6,7,8,9),
        array("Land Rover",10),
);

foreach($cars as $row => $sub){
    echo "<p><b>Row number " . ($row +1) . "</b></p>\n";
    echo "<ul>\n";
    echo "<li>" . implode("</li><li>", $sub) . "</li>\n";
    echo "</ul>\n\n";
}

Output: 输出:

<p><b>Row number 1</b></p>
<ul>
<li>Volvo</li><li>1</li><li>2</li><li>3</li>
</ul>

<p><b>Row number 2</b></p>
<ul>
<li>BMW</li><li>4</li><li>5</li>
</ul>

<p><b>Row number 3</b></p>
<ul>
<li>Saab</li><li>6</li><li>7</li><li>8</li><li>9</li>
</ul>

<p><b>Row number 4</b></p>
<ul>
<li>Land Rover</li><li>10</li>
</ul>

https://3v4l.org/aTYKg https://3v4l.org/aTYKg

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM