# 9/16 陣列、布林值、判斷式
### 陣列(Array)
> Q: 甚麼是陣列?
>
> A: 目前我們所看到的所有變數他都是只能存取一個值的,而陣列是能夠一次存取多個值的變數。
>
可以將陣列視為一個很大的空間,能夠放下多個盒子,盒子內都會有一格的空間可以放置東西,而要打開盒子會需要一把鑰匙,而每個鑰匙的是獨一無二的,每個盒子都只能通過特定的鑰匙來打開,打開後才可以獲取裡面的東西。
我們會將盒子的空位稱作 值(Value),而鑰匙我們稱作 索引(Key)。
#### PHP 兩種陣列寫法
```php=
$array = ['key1' => 'value1','key2' => 'value2','key3' => 'value3'];
$array = array('key1' => 'value1','key2' => 'value2','key3' => 'value3');
```
#### 如何使用
```php=
$array = [0 => 'a', 1 => 'b',2 => 'c'];
$array[0] // 得到結果為 a
$array[1] // 得到結果為 b
$array[2] // 得到結果為 c
```
#### Key 強制轉換
```php=
// 整數字串
$str_array = ['1' => 'a'];
$str_array = [1 => 'a'];
// 浮點數
$float_array = [1.23 => 'a'];
$float_array = [1 => 'a'];
// 重複索引
$repeat_array = [1 => 'a',1 => 'b',2 => 'c',2 => 'd'];
$repeat_array = [1 => 'b',2 => 'd'];
```
#### 短陣列(省略索引)
索引值是可以自訂的,若沒有自訂索引的時候,PHP會自己從0開始按照順序遞增自動產生索引值。
```php=
$array = ['a','b','c','d','e'];
$array = [0 => 'a',1 => 'b',2 => 'c',3 => 'd',4 => 'e'];
```
#### 注意事項
若要查看整筆的陣列,因為陣列並非文字,所以無法使用 `echo $array`
使用 `var_dump($array)` 可以將整的陣列展開來查看
若只要取得陣列中的一筆資料可以用 `echo $array[索引值]` 來使用
---
### 布林值(Boolean)
布林值只有兩中可能 TRUE 跟 FALSE
中文直翻就是 真 跟 假
```php=
$bool = true; // 真
$bool = false; // 假
```
---
### 判斷式(if、else、switch)
判斷式主要是用來控制程式的分支,
判斷式基本是用布林值來控制該去哪一個分支
'=' 是賦予值的意思,
'==' 是用來比對左右兩邊的值是否相等
https://www.php.net/manual/zh/language.operators.comparison.php
#### 兩種情況的判斷
舉例: 如果沒有下雨,就出去打球,不然就在家看電視。
https://ithelp.ithome.com.tw/articles/10219069
```php=
$rainny = false; //
if($rainny){ // 如果現在下雨
echo "Watch TV"; // 看電視
} else { // 不然就去打球
echo "Go play ball."; // 去打球
}
```
解釋:
當`$rainny`為真(true)的時候會進入到if裡面的程式,如果為假(false)就會進入到else裡面的程式
#### 兩種以上情況的判斷
當有需要用到多個判斷的時候可以使用 elseif
舉例:假設天氣有四種情況
1.晴天,出去打球
2.雨天,看電視
3.陰天,去購物
當天氣出現以下三種情況時,就去做特定的事
```php=
if($weather == 'sunny'){ // 如果天氣是晴天
echo "Go play ball"; // 去打球
}else if($weather == 'rainny'){ // 如果天氣是雨天
echo "Watch TV"; // 看電視
}else if($weather == 'windy'){ // 如果天氣是陰天
echo "Shop"; // 去購物
}
```
解釋:
程式先會判斷如果`$weather`的值為`'sunny'`,如果不是就判斷值是否為`'rainny'`,如果不是就判斷值是否為`'windy'`
---
題目:
1.定義兩個變數一個是`$user`一個是`$password`如果帳號是admin且密碼是1234的時候會 輸出"登入成功",如果不是 輸出"登入失敗"。
2.定義一個變數`$color`判斷如果值是'yellow'的時候輸出`黃色`,如果值是'blue'的時候輸出`藍色`,如果是'green'的時候輸出`綠色`,如果是'red'的時候輸出`紅色`。
---
#### 多種情況的判斷事
當需要使用很多個判斷的時候可以使用switch來做判斷
```php=
switch($color){
case 'red':
echo "紅色";
break;
case 'orange':
echo "橙色";
break;
case 'yellow':
echo "黃色";
break;
case 'green':
echo "綠色";
break;
case 'blue':
echo "藍色";
break;
case 'indigo':
echo "靛色";
break;
case 'violet':
echo "紫色";
break;
default:
echo "其他顏色";
}
```
---
題目:
1.定義變數`$favfruit`,
當值為'apple'的時候輸出`最喜歡的水果是蘋果`,
當值為'banana'的時候輸出`最喜歡的水果是香蕉`,
當值為'orange'的時候輸出`最喜歡的水果是橘子`,
當值是其他的時候輸出`最喜歡的不是這些水果`
---
[下一篇](/mzgdbKNyRUe5X7OL0FvsbA)