iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

大二萌新的學習紀錄系列 第 9

Day 9 : PHP - 如何宣告陣列?又該如何印出它?

這篇想和大家介紹一下PHP的陣列有哪些宣告方式,還有該如何印出它
會想分享是因為,我當初在學這裡的時候,覺得有點難理解
因為它的宣告方式不像java和C那麼的直覺

那我們就先來介紹宣告方法,再介紹印出方法,兩者都各有「三種方法」能使用


宣告方法一:
[]的地方為key,可以用「數字」或「名字(要記得用雙引號)」去宣告

讓我們看以下範例

PHP:

//方法一:$array[key]=value;
echo "宣告方法一:<br>";
echo "這是name陣列的內容<br>";
$name[0] = "Tom";
$name[1] = "Amy";
$name[2] = "Eason";
$name[3] = "Joker";
echo $name[1]."<br>";
echo $name[3]."<br><br>";

echo "這是weight陣列的內容<br>";
$weight["Tom"] = 60;
$weight["Amy"] = 50;
$weight["Eason"] = 65;
$weight["Joker"] = 100;
echo $weight["Amy"]."<br>";
echo $weight["Joker"]."<br><br>";

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/201410883W7fYKYEgs.png


宣告方法二:
你也可以只宣告value,這樣它的key值會自動從0開始

讓我們看以下範例

PHP:

//$變數名稱 = array("第1個value", "第2個value", "第3個value");
$name = array("Tom", "Amy", "Eason", "Joker");
$weight = array("60", "50", "65", "100");

echo "宣告方法二:<br>";
echo "這是name陣列的內容<br>";
echo $name[0]."<br>";
echo $name[1]."<br>";
echo $name[2]."<br>";
echo $name[3]."<br><br>";

echo "這是weight陣列的內容<br>";
echo $weight[0]."<br>";
echo $weight[1]."<br>";
echo $weight[2]."<br>";
echo $weight[3]."<br><br>";

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/20141088nCXjS46YnD.png


宣告方法三:
如果想同時宣告key和value,可以用”key”=>”value”,表示「某key值指向某value」

讓我們看以下範例

PHP:

//$變數名稱 = array("第1個key值" => "第1個value", "第2個key值" => "第2個value", "第3個key值" => "第3個value");
$selfKey = array("Tom"=>"60", "Amy"=>"50", "Eason"=>"65", "Joker"=>"100");

echo "宣告方法三:<br>";
echo "自訂key的測試<br>";
echo $selfKey['Amy']."<br>";
echo $selfKey['Eason'];

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/20141088b63Mfw09xT.png


介紹完宣告的方法,換介紹印出的方法

印出方法一: foreach
foreach本質上和for迴圈一樣,所以可以把該陣列所有$key$value都印出來
這裡我們用宣告方法三的$selfKey去示範,()內的順序為$陣列名稱 as $key => $value,而這裡的$key和$value可以「任意命名」,不一定只能命名成$key和$value

讓我們看以下範例

PHP:

$selfKey = array("Tom"=>"60", "Amy"=>"50", "Eason"=>"65", "Joker"=>"100");
echo "印出方法一:<br>";
//foreach($陣列名稱 as $key => $value) {
//}
echo "用foreach印出陣列<br>";
foreach($selfKey as $key_name => $value_weight) {
    echo "姓名:$key_name, 體重為:$value_weight<br>";
}

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/2014108880nchYTrSD.png


印出方法二: print_r
print_r可以將整個陣列印出,但如果在後面加上true,則該行陣列不會印出
這裡我們用宣告方法三的$selfKey和宣告方法一的$name$weight示範

讓我們看以下範例

PHP:

echo "印出方法二:<br>";
//print_r($陣列名稱, boolean);
echo "用print_r印出陣列<br>";
print_r($name);
print_r($selfKey, true); // 此行不會印出
echo "<br>";
print_r($weight).”<br><br>";

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/20141088Lke999HPF7.png

印出方法三: 用print_r+echo
續印出方法二,若把print_r($陣列名稱, true);先存在某個「變數」裡
再用echo的方式印出,就印的出來囉!
因為它已經存在變數裡了,所以不會有印不出來的問題

讓我們看以下範例

PHP:

echo "印出方法三:<br>";
echo "用print_r+echo印出陣列<br>";
$result = print_r($selfKey, true);
echo $result.”<br><br>";

結果如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20210923/20141088TeitDQHenR.png

如果沒加上true,則會在後面多出一個1
https://ithelp.ithome.com.tw/upload/images/20210923/20141088bgaYn1mTun.png


以上就是陣列常用的宣告方式和印出方法
希望大家看完能更加了解


上一篇
Day 8 : HTML – 為什麼Flex沒有justify-items和justify-self,而grid卻有?
下一篇
Day 10 : PHP - 常用的陣列函數有哪些?
系列文
大二萌新的學習紀錄30

尚未有邦友留言

立即登入留言