# 線性表結構之數組
> 數組是由類型相同的數據元素構成的有序集合。
> 由類型相同的元素構成的有序集合,并且使用一塊連續內存存儲。
- 隨機訪問
- 容量有限
假設數組的長度是n,
訪問數組: `O(1)`
插入:`O(n)` (最壞情況下)
刪除:`O(n)` (最壞情況下)
## 數組的基本操作
- 初始化數組
- 銷毀數組
- 數組賦值
- 取數組的某個元素
- 復制一個數組
- 打印數組的元素
## 數組的存儲
- 一維數組
按照順序存儲,物理地址和邏輯地址都是連續的
- 多維數組
(1) 行優先順序
存儲時,先按行從小到大的順序存儲,在每一行中按列號從小到大存儲。
(2) 列優先順序
存儲時,先按列從小到大的順序存儲,在每一列中按行號從小到大存儲。
```php
$arr = [
[1, 3, 5],
[2, 4, 6],
[3, 8, 9],
[4, 7, 10]
];
$arr_new = [];
// 行優先順序
for ($i = 0; $i < 4; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr_new[$i * 3 + $j] = $arr[$i][$j];
}
}
var_dump(implode('-', $arr_new));// 1-3-5-2-4-6-3-8-9-4-7-10
//$arr_new = [];
// 列優先順序
for ($i = 0; $i < 4; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr_new[$j* 4 + $i] = $arr[$i][$j];
}
}
var_dump(implode('-', $arr_new));// 1-2-3-4-3-4-8-7-5-6-9-10
```
## 矩陣的存儲
- 對稱矩陣
- 三角矩陣
- 對角矩陣