【问题标题】:PHP: Foreach in a multidimensional array [duplicate]PHP:多维数组中的 Foreach [重复]
【发布时间】:2018-03-01 13:08:49
【问题描述】:

得到了一个学校的任务来制作一个多维数组。

<?php
$cars = array( 
        "car1" => array (   
            "brand" => 'BMW',
            "license" => '30-KL-PO',    
            "price" => 10000
            ),

        "car2" => array (
           "brand" => 'Mercedes',
           "license" => '51-ZD-ZD',
           "price" => 20000
        ),

        "car3" => array (
           "brand" => 'Maserati',
           "license" => 'JB-47-02',
           "price" => 30000
        )
     );

foreach($carss as $car){
echo $car['car1']['brand'] . $car['car1']['brand'] . "<br>";
}

?>

我需要使用 foreach 显示所有汽车的品牌和许可证。我只用 car1 进行了尝试,但出现错误:未定义索引:car1。

我知道如何只使用 echo 来显示它,但我的作业说我必须使用 foreach。

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:

    将循环更改为

    foreach($carss as $key => $car){
       echo $key ." ". $car['brand'] . "<br>";
    }
    

    【讨论】:

      【解决方案2】:

      离你不远了:

      <?php
      $cars = array( 
              "car1" => array (   
                  "brand" => 'BMW',
                  "license" => '30-KL-PO',    
                  "price" => 10000
                  ),
      
              "car2" => array (
                 "brand" => 'Mercedes',
                 "license" => '51-ZD-ZD',
                 "price" => 20000
              ),
      
              "car3" => array (
                 "brand" => 'Maserati',
                 "license" => 'JB-47-02',
                 "price" => 30000
              )
           );
      
      foreach($cars as $car)
          printf("%-10s %s\n",  $car['brand'], $car['license']);
      

      输出:

      BMW        30-KL-PO
      Mercedes   51-ZD-ZD
      Maserati   JB-47-02
      

      使用键定位来自$cars 的单个值:

      echo $cars['car1']['brand'];
      

      输出:

      BMW
      

      【讨论】:

        【解决方案3】:

        你可以这样做

        <?php
        $cars = array( 
            "car1" => array (   
                "brand" => 'BMW',
                "license" => '30-KL-PO',    
                "price" => 10000
            ),
            "car2" => array (
                "brand" => 'Mercedes',
                "license" => '51-ZD-ZD',
                "price" => 20000
            ),
            "car3" => array (
                "brand" => 'Maserati',
                "license" => 'JB-47-02',
                "price" => 30000
            )
        );
        $result = []; // blank array to store result 
        foreach($cars as $key => $val):
        $result[$key]["brand"] = $val["brand"]; 
        $result[$key]["license"] = $val["license"]; 
        endforeach;
        #echo "<pre>";
        #print_r($result);
        ?>
        

        【讨论】:

          猜你喜欢
          • 2015-11-09
          • 1970-01-01
          • 2015-12-30
          • 2012-05-01
          • 1970-01-01
          • 2017-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多