返回列表 上一主題 發帖

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

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

4-2-2   二維陣列的存取
要存取二維陣列元素的資料很簡單,就如同處理一維陣列,不過,我們必須同時指定元素的列註標與行註標,例如:
  1. $Myarray [0][1] = 999;  //將資料存放置陣列位置[0][1]中
  2. $Myarray[1][2] = 888;  //將資料存放置陣列位置[1][2]中
  3. //取出陣列位置[0][1]與[1][2]的資料相減,並存至陣列位置[3][3]中
  4. $Myarray[3][3]= $Myarray[0][1]- $Myarray[1][2];
複製代碼
如果要以迴圈敘述來存取二維陣列的資料,則必須使用巢狀的迴圈,我們以for巢狀迴圈輸出範例ex04_13.php(圖4-11)二維陣列內的資料來說明:

圖4-11   ex04_13.php。
ex04_13.php
  1. <HTML>
  2. <HEAD>
  3. <TITLE>ex04_13</TITLE>
  4. </HEAD>
  5. <BODY>
  6. <?
  7. $Student=array(
  8. "0"=>array(0=>"姓名",1=>"國文",2=>"英文",3=>"數學"),
  9. "1"=>array(0=>"小誌",1=>100,2=>90,3=>80),
  10. "2"=>array(0=>"得華",1=>60,2=>100,3=>70),
  11. "3"=>array(0=>"亭封",1=>90,2=>80,3=>90),
  12. "4"=>array(0=>"學有",1=>65,2=>90,3=>80));
  13. ?>
  14. <table border=1>
  15. <?
  16. $i=count($Student);
  17. for($x=0;$x<$i;$x++)
  18. {
  19.   echo "<tr>";
  20.   $j=count($Student[$x]);
  21.   for ($y=0;$y<$j;$y++)
  22.    {
  23.    echo ("<td>" . $Student[$x][$y] . "</td>");
  24.    }
  25.   echo "</tr>";
  26. }
  27. ?>
  28. </table>
  29. </BODY></HTML>
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

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

  12. foreach ($Student as $key=>$value)
  13. {
  14. echo "<tr>";
  15. foreach ($value as $key1=>$value1)
  16. {
  17. echo "<td>元素註標: $key,$key1 ; 元素值: $value1 </td>";
  18. }
  19. echo "</tr>";
  20. }
  21. ?>
  22. </table>
  23. </BODY></HTML>
複製代碼

圖4-12   ex04_14.php。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 一句溫暖的話,就像往別人身上灑香水,自己會沾到兩三滴。
返回列表 上一主題