:::

2-4 關於陣列

一、陣列寫法

  1. 陣列是 Array,也就是一個變數可以存放許多值
  2. 底下這幾種方法都可以定義陣列,這三種都是一樣的意思
    $stu = array('吳同學', '王同學', '林同學');
    
    $stu = ['吳同學', '王同學', '林同學'];
    
    $stu[] = '吳同學';
    $stu[] = '王同學';
    $stu[] = '林同學';
     

二、一維陣列

  1. 上面是一維陣列,沒有指定索引的情況下,預設為從 0 開始的數字索引,亦即:
    $stu = array(0 => '吳同學', 1 => '王同學', 2 => '林同學');
    
    $stu = [0 => '吳同學', 1 => '王同學', 2 => '林同學'];
    
    $stu[0] = '吳同學';
    $stu[1] = '王同學';
    $stu[2] = '林同學';
    echo $stu[2] 會得到「林同學」三個字
  2. 可以自己指定索引:
    $stu = array(1 => '吳同學', 2 => '王同學', 4 => '林同學');
    
    $stu = [1 => '吳同學', 2 => '王同學', 4 => '林同學'];
    
    $stu[1] = '吳同學';
    $stu[2] = '王同學';
    $stu[4] = '林同學';
    echo $stu[2] 會得到「王同學」三個字
  3. 亦可用文字作為索引
    $stu = array('1號' => '吳同學', '2號' => '王同學', '4號' => '林同學');
    
    $stu = ['1號' => '吳同學', '2號' => '王同學', '4號' => '林同學'];
    
    $stu['1號'] = '吳同學';
    $stu['2號'] = '王同學';
    $stu['4號'] = '林同學';
    echo $stu[2] 會得到空值,echo $stu['2號'] 才會得到「王同學」三個字
  4. 也就是說,我們可以用一個變數,存一整班的學生資料。

三、二維陣列

  1. 若是要指定某個班的所有學生資料呢?底下兩個會有相同結果($stu 的值為上面所設):
    $class_stu['甲班'] = $stu;
    $class_stu['甲班'] = [1 => '吳同學', 2 => '王同學', 4 => '林同學'];
    • echo $class_stu['甲班'] 會印不出來,顯示 Array,因為底下有好幾個,不曉得要顯示誰(可用 foreach 一個一個印出來)
    • echo $class_stu['甲班'][2] 會印出「王同學」
  2. 若是要存一整個年級的學生資料呢?
    $class_stu['甲班'] = [1 => '吳同學', 2 => '王同學', 4 => '林同學'];
    $class_stu['乙班'] = [1 => '張同學', '陳同學', '梁同學', '郭同學'];
    $class_stu['丙班'] = [1 => '施同學', '黃同學', '楊同學', '蔡同學'];
    • 若是座號當成索引,而且有連號,那麼只要指定第一個,後面會自動連號。
    • 也就是說若 echo $class_stu['乙班'][2] 會印出「陳同學」
    • 也就是說若 echo $class_stu['丙班'][2] 會印出「黃同學」

範例:

<?php
$stu = [1 => '吳同學', 2 => '王同學', 4 => '林同學'];

$class['甲班'] = $stu;
$class['乙班'] = [1 => '張同學', '陳同學', '梁同學', '郭同學'];
$class['丙班'] = [1 => '施同學', '黃同學', '楊同學', '蔡同學'];

$year['一年級'] = $class;
$year['二年級'] = $class;

foreach ($year as $year_name => $all_class) {
    echo "<h2>{$year_name}</h2>";
    foreach ($all_class as $class_name => $students) {
        echo "<h3>{$class_name}</h3>";
        foreach ($students as $num => $name) {
            echo "{$name} ({$num})<br>";
        }
    }
}

// dd($year);

// echo $class_stu['丙班'][1];

// 顯示變數內容
function dd($array = [])
{
    header("Content-Type: application/json; charset=utf-8");
    die(json_encode($array, 256));
}

 


:::

書籍目錄

展開 | 闔起

快速登入


https%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1978%26tbsn%3D52

計數器

今天: 4481448144814481
昨天: 2489248924892489
總計: 8026463802646380264638026463802646380264638026463