查看: 1720|回復: 0
打印 上一主題 下一主題

[程式編輯]陣列裡的陣列:好用的二維陣列!

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-2-16 01:42:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

  // 宣告$School是二維陣列
  $School = array(
    array("幼稚園", "八個月至六歲", "小天使"),
    array("國小", "七歲至十三歲", "已經很皮了"),
    array("國中", "十四歲至十六歲", "管不動了"));

  // 印出$School陣列的某個元素
  echo $School[0][0]; echo " ";
  echo $School[0][1]; echo " ";
  echo $School[0][2]; echo "<br>";
  echo $School[1][0]; echo " ";
  echo $School[1][1]; echo " ";
  echo $School[1][2]; echo "<br>";
  echo $School[2][0]; echo " ";
  echo $School[2][1]; echo " ";
  echo $School[2][2]; echo "<br>";
  echo "<br>";

  // 逐一印出$School陣列的全部元素
  for($Key=0;$Key<count($School);$Key++) {
    for($Key2=0;$Key2<count($School[$Key]);$Key2++) {
      echo $School[$Key][$Key2];
      echo " ";
    }
    echo "<br>";
  }
  echo "<hr>";


  // 二維陣列:指定索引名稱
  $City = array(
    "800"=>array("新興區", "市中心"),
    "803"=>array("三民區", "面積最大"),
    "807"=>array("小港區", "原屬高雄縣"));

  echo $City["800"][0]; echo " ";
  echo $City["800"][1]; echo "<br>";
  echo $City["803"][0]; echo " ";
  echo $City["803"][1]; echo "<br>";
  echo $City["807"][0]; echo " ";
  echo $City["807"][1]; echo "<br>";
  echo "<br>";

  while (list($Key, $Value) = each($City)) {
    while (list($Key2, $Value2) = each($City[$Key])) { // 注
      echo $City[$Key][$Key2]; // 注2
      echo " ";
    }
    echo "<br>";
  }
?>
結果:
幼稚園 八個月至六歲 小天使
國小 七歲至十三歲 已經很皮了
國中 十四歲至十六歲 管不動了

幼稚園 八個月至六歲 小天使
國小 七歲至十三歲 已經很皮了
國中 十四歲至十六歲 管不動了

新興區 市中心
三民區 面積最大
小港區 原屬高雄縣

新興區 市中心
三民區 面積最大
小港區 原屬高雄縣
語法:
一般二維陣列型式:
$變數名稱 = array(array("元素值", "元素值"), array("元素值", "元素值"));

這樣寫法比較清楚:
$變數名稱 = array(
  array("元素值", "元素值"),
  array("元素值", "元素值"));

指定索引名稱型式:
$變數名稱 = array("索引"=>array("元素值"), "索引"=>array("元素值"), "索引"=>array("元素值"));

這樣寫法比較清楚:
$變數名稱 = array(
  "索引"=>array("元素值"),
  "索引"=>array("元素值"),
  "索引"=>array("元素值"));
說明:
  1. 一維陣列的說明請參閱前範例。
  2. 二維陣列的「元素值」型態可以是字串或數字,也可以放入變數或常數或一維陣列。
  3. 每個元素之間必須用逗點(,)隔開。
  4. 用中括號([])取得陣列的一維元素值;用兩對中括號([][])取得陣列的二維元素值。
  5. 陣列的「索引值」是從零(0)開始計數,一維第一個元素就是$Array[0];二維第一個元素就是$Array[索引值][0]。
  6. 自定「索引名稱」可以是字串或數字,也可以放入變數及常數;用自定索引時要加等於大於(=>)。
  7. while (list($Key, $Value) = each($Array)),這種寫法就是逐一取得陣列的「索引值$Key」及「元素值$Value」;不必去考慮陣列元素的個數,也不必考慮索引名稱,是很好用的方式。用兩層這樣的方式,就是逐一取得二維陣列的「索引值」及「元素值」。
  8. 註:範例中的$City[$Key]可寫成$Value,結果是一樣的,不過第一種寫法比較容易除錯。
  9. 注2:範例中的$City[$Key][$Key2]也可以寫成$Value2或$Value[$Key2],結果是一樣的,不過第一種寫法比較容易除錯。
  10. 二維陣列只是一維陣列多一層,規則與一維陣列均同。
  11. 雙斜線(//)是註解。
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-10-29 06:46 , Processed in 0.051572 second(s), 15 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表