麻辣家族討論版版's Archiver

小誌 發表於 2011-4-18 19:52

4-2-2 二維陣列的存取

[color=DarkRed][size=4][b]4-2-2   二維陣列的存取[/b][/size][/color]
要存取二維陣列元素的資料很簡單,就如同處理一維陣列,不過,我們必須同時指定元素的列註標與行註標,例如:[code]$Myarray [0][1] = 999;  //將資料存放置陣列位置[0][1]中
$Myarray[1][2] = 888;  //將資料存放置陣列位置[1][2]中
//取出陣列位置[0][1]與[1][2]的資料相減,並存至陣列位置[3][3]中
$Myarray[3][3]= $Myarray[0][1]- $Myarray[1][2];[/code]如果要以迴圈敘述來存取二維陣列的資料,則必須使用巢狀的迴圈,我們以for巢狀迴圈輸出範例ex04_13.php(圖4-11)二維陣列內的資料來說明:
[attach]5492[/attach]
圖4-11   ex04_13.php。
ex04_13.php[code]<HTML>
<HEAD>
<TITLE>ex04_13</TITLE>
</HEAD>
<BODY>
<?
$Student=array(
"0"=>array(0=>"姓名",1=>"國文",2=>"英文",3=>"數學"),
"1"=>array(0=>"小誌",1=>100,2=>90,3=>80),
"2"=>array(0=>"得華",1=>60,2=>100,3=>70),
"3"=>array(0=>"亭封",1=>90,2=>80,3=>90),
"4"=>array(0=>"學有",1=>65,2=>90,3=>80));
?>
<table border=1>
<?
$i=count($Student);
for($x=0;$x<$i;$x++)
{
  echo "<tr>";
  $j=count($Student[$x]);
  for ($y=0;$y<$j;$y++)
   {
   echo ("<td>" . $Student[$x][$y] . "</td>");
   }
  echo "</tr>";
}
?>
</table>
</BODY></HTML>[/code]

小誌 發表於 2011-4-18 19:53

對於連續註標的二維陣列使用巢狀for迴圈可以輕易的解決,但是若對於非連續註標或字串註標的陣列就行不通了,此時要改用巢狀的foreach迴圈才能解決,例如輸出範例ex04_12.php中所初始的陣列:
ex04_14.php[code]<HTML>
<HEAD>
<TITLE>ex04_14</TITLE>
</HEAD>
<BODY>
<table border=1>
<?
$Student=array(
"小誌"=>array("a"=>100,2=>90,"b"=>80),
"得華"=>array(1=>60,"c"=>100,3=>70),
"亭封"=>array("d"=>90,2=>80,"e"=>90));

foreach ($Student as $key=>$value)
{
echo "<tr>";
foreach ($value as $key1=>$value1)
{
echo "<td>元素註標: $key,$key1 ; 元素值: $value1 </td>";
}
echo "</tr>";
}
?>
</table>
</BODY></HTML>[/code][attach]5493[/attach]
圖4-12   ex04_14.php。

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供