iT邦幫忙

2021 iThome 鐵人賽

DAY 11
1
Software Development

PHP 語法通關系列 第 11

Day11 PHP數據類型--複合類型之陣列

數組/陣列(array):存放一組數據

存資料就要用變數,不過變數只能一次存一個資料,而數組是一種可以一次儲存多個變數的資料結構,並且除了一維陣列之外,還可以寫成多維陣列,儲存更多的値。

定義和用法

array() 函數創建陣列。

$arr=array("第一個値","第二個値","第三個値");

其中 $arr 就是一個陣列,包含了三個値在裡面,代表的意義如下
$arr[0]=第一個値、$arr[1]=第二個値、$arr[2]=第三個値。

其中「$arr[0]=第一個値」這個叫做陣列元素,0、1、2 分別是陣列索引,而「第一個値」、「第二個値」與「第三個値」稱為陣列値。

  • 自訂索引的陣列
    接受任意數量用逗號分隔的 鍵(key) => 值(value)
<?php
$arr = array(
     key  =>value,
     key2 => value2,
     key3 =>value3,
    ...
)

// php 5.4 版後,下列語法也是合法的
    $arr2 = [ key=>value , key=>value , key=>value , ...]; 
  • 存取與使用陣列呢?

我們會用中括號[key(鍵、索引)]來存取陣列,拿到相對應的值(value)

在PHP 中,有三種類型的陣列:

  1. 數值陣列 -帶有數字ID鍵的陣列
  2. 關聯陣列 -帶有指定的鍵的陣列,每個鍵關聯一個值
  3. 多維陣列 -包含一個或多個陣列的陣列
  • 數值陣列的語法:
    自動分配ID 鍵(ID 鍵總是從0 開始)
$arr = array( value1,value2,value3,etc. );
  • 關聯陣列的語法:
    關聯陣列是使用您分配給陣列的指定的鍵的數組。
$arr = array( key=>value,key=>value,key=>value,etc. );
  • 多維陣列是包含一個或多個陣列的陣列。
    在多維陣列中,主數組中的每一個元素也可以是一個陣列,子數組中的每一個元素也可以是一個陣列。
	$arr = array(
		array('id'=>1,'name'=>'Winnie','age'=>18,'sex'=>0),
		array('id'=>2,'name'=>'Ritabear','age'=>20,'sex'=>0),
		array('id'=>3,'name'=>'Bear','age'=>18,'sex'=>1),

	);
	//var_dump($arr);

以下就是一個實際多維陣列的使用例子,利用for循環把東西都取出來,只是因為還沒有講到迴圈,所以這裡先放個例子,以後再解釋循環。

<?php
/*    for循環遍歷陣列將内容输入到表格中   */
$arr = array(
	array('id' => 1, 'name' => 'Winnie', 'age' => 18, 'sex' => 0),
	array('id' => 2, 'name' => 'Ritabear', 'age' => 20, 'sex' => 0),
	array('id' => 3, 'name' => 'Bear', 'age' => 18, 'sex' => 1),

);
//var_dump($arr);


echo '<table border="1" align="center" width="800">';
echo '<caption><h2>管理表</h2></caption>';
echo '<tr>';
echo '<th>编號</th>';
echo '<th>姓名</th>';
echo '<th>年龄</th>';
echo '<th>性别</th>';
echo '</tr>';
$len = count($arr);
for ($i = 0; $i < $len; $i++) {
	$bgcolor = $i % 2 == 1 ? '#ddd' : '';
	echo '<tr bgcolor="' . $bgcolor . '" align="center">';
	echo '<td>' . $arr[$i]['id'] . '</td>';
	echo '<td>' . $arr[$i]['name'] . '</td>';
	echo '<td>' . $arr[$i]['age'] . '</td>';
	switch ($arr[$i]['sex']) {
		case 0:
			echo '<td>女</td>';
			break;
		case 1:
			echo '<td>男</td>';
			break;
	}

	echo '</tr>';
}
echo '</table>';

Day11 Winnie的聊天室

今天簡單介紹一下array,是每個程式語言都一定有的單元,對於array的使用來說其實可以弄得很複雜,到現在為止其實還沒有介紹到函數,等到介紹到的時候,真的覺得學海無涯,很令人感到刺激興奮(?XDDD
不過函數真的是有要用到功能再去找,如果沒有就要自己寫wwww


上一篇
Day10 PHP數據類型--基本類型之數字與布爾型
下一篇
Day12 PHP運算符(子)
系列文
PHP 語法通關30

尚未有邦友留言

立即登入留言