# 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)