2009-11-25 33 views
0

給定這個二維數組,每個元素都有兩個索引 - 行和列。用於從數組中提取數據的PHP選項?

<?php 
$shop = array(array("rose", 1.25 , 15), 
       array("daisy", 0.75 , 25), 
       array("orchid", 1.15 , 7) 
      ); 
?> 

這些是我使用行列索引從數組中提取數據的唯一兩個選項嗎?

<?php 
echo "<h1>Manual access to each element</h1>"; 

echo $shop[0][0]." costs ".$shop[0][1]." and you get ".$shop[0][2]."<br />"; 
echo $shop[1][0]." costs ".$shop[1][1]." and you get ".$shop[1][2]."<br />"; 
echo $shop[2][0]." costs ".$shop[2][1]." and you get ".$shop[2][2]."<br />"; 

echo "<h1>Using loops to display array elements</h1>"; 

echo "<ol>"; 
for ($row = 0; $row < 3; $row++) 
{ 
    echo "<li><b>The row number $row</b>"; 
    echo "<ul>"; 

    for ($col = 0; $col < 3; $col++) 
    { 
     echo "<li>".$shop[$row][$col]."</li>"; 
    } 

    echo "</ul>"; 
    echo "</li>"; 
} 
echo "</ol>"; 
?> 

回答

3
foreach($shop as $items){ 
echo $items[0]." costs ".$items[1]." and you get ".$items[2]."<br />"; 
} 

的foreach似乎對我來說更簡單了,再加上如果你的關鍵不是數字像

array(  'foo' => array("rose", 1.25 , 15), 
       'bar' => array("daisy", 0.75 , 25), 
       'foobar' =>array("orchid", 1.15 , 7) 
      ); 

我個人避免在PHP中使用for因爲它不夠靈活然後foreach它會處理大多數情況。

0

你也可以使用

的foreach($店爲$ shoprow)