将多维数组显示为列表

时间:2019-03-31 19:13:10

标签: php arrays multidimensional-array

我试图显示一个多维数组,并且我以一种非常静态的方式做到这一点。我想知道如何用foreach达到相同的结果。

我已经尝试过访问单个作品,但是编码技术似乎不可接受。

         array(
         "name" => "Bob",
        "occupation" => "employee",
         "salary" => 1500,
         "specialty" => "programmer"
         ),
         array(
         "name" => "Sally",
        "occupation" => "manager",
        "salary" => 2300,
         "specialty" => "human resources management"
         ),
        array(
         "name" => "Jane",
        "occupation" => "employee",
        "salary" => 800,
        "specialty" => "secretary"
         ),
     );

我的功能

function printTable($table){
        echo "<h2>Employee #1</h2>";
        echo $table[0]["name"];
        echo $table[0]["occupation"];
        echo $table[0]["salary"];
        echo $table[0]["specialty"];

        echo "<h2>Employee #2</h2>";
        echo $table[1]["name"];
        echo $table[1]["occupation"];
        echo $table[1]["salary"];
        echo $table[1]["specialty"];

        echo "<h2>Employee #3</h2>";
        echo $table[2]["name"];
        echo $table[2]["occupation"];
        echo $table[2]["salary"];
        echo $table[2]["specialty"];
    }

所需结果http://prntscr.com/n5jnnu

2 个答案:

答案 0 :(得分:1)

检查这一点。您有2D数组,因此我们需要2个for循环,然后我们打印键值(名称为key)和值。此外,我还添加了一个计数器来打印员工人数。

    $counter = 1;
    echo "<ul>";
    foreach($table as $val){
        echo "<h2>Employee #$counter</h2>";
        foreach($val as $key => $val1){
            echo "<li>$key: $val1 </li>";
        }
        echo "<br>";
        $counter++;
    }
    echo "</ul>"

答案 1 :(得分:0)

您可以轻松使用多维数组中可用的键和值。

要计算员工人数,请在索引(第一级键)上加1。

通过在<ul>标记之外编写<h1>元素,您将获得已发布屏幕截图的标签式外观。

使用CSS设置<h2>$array = [ ["name" => "Bob", "occupation" => "employee", "salary" => 1500, "specialty" => "programmer"], ["name" => "Sally", "occupation" => "manager", "salary" => 2300, "specialty" => "human resources management"], ["name" => "Jane", "occupation" => "employee", "salary" => 800, "specialty" => "secretary"] ]; echo "<h1>Employees and managers</h1>"; foreach ($array as $index => $row) { echo "<h2>Employee #" , $index + 1 , "</h2>"; echo "<ul>"; foreach ($row as $label => $value) { echo "<li>$label: $value</li>"; } echo "</ul>"; } 标签的字体样式。

经过测试的代码:

{{1}}

输出:

enter image description here