2017-09-20 35 views
-2

为学校创建了一个多维数组。PHP:Foreach在多维数组中

<?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试过,发现错误:Undefined index:car1。不知道如何解决它。

我知道如何让它显示只使用回声,但我的任务说我必须使用一个foreach。我根本没有使用PHP的经验,所以我希望你们能以正确的方式指出我。提前致谢。

回答

0

更改环路

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

不支持offtopic问题。 – tilz0R

0

你可以做这样的事情

<?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); 
?> 
0

你是为期不远:

<?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