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 9 - 解密 Order API 回传的 Message 字串

>>:  Day11 天气API小实作1

【RPA介绍】如何用UiPath Studio把重复性流程自动跑起来!

一、RPA是什麽? RPA 是 Robotic Process Automation的缩写,简称机器...

CIA安全目标

曾就「资讯本身的破坏」和「资讯或资讯系统获取或使用中断」进行了辩论。然而,FISMA和FIPS 19...

sql 记录运作时间

用了多少时间 记录在变数的方式 declare @BTIME datetime declare @E...

[Day13]空值转换函数

前几篇文章提及过,当资料表数值为空值时有三种情况,分别为: 目前不知道其值 未指派 没有值 但不管是...

EP 20: Custom Launch Screen for Android

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...