PHP 數組

PHP 陣列


陣列提供了一個快速,方便地管理一組相關資料的方法,是php程式設計中的重要內容。

php中將數組分為一維數組,二維數組和多維數組,但無論是一維還是多維,可以統一將數組分為數字索引數組和關聯數組兩種。

陣列能夠在單一變數中儲存多個值:

實例

<?php
 $phones=array("Iphone","Nokia","Oppo");
 echo "I like " . $phones[0] . ", " . $phones[1] . " and " . $phones[2] . ".";
 ?>


陣列是什麼?

陣列是一個能在單一變數中儲存多個值的特殊變數。

如果您有一個項目清單(例如:手機名字的清單),將其儲存到單一變數中,如下所示:

$phones1

="Iphone";

$phones2

="Nokia";
$phones3

# ="Oppo";

然而,如果您想要遍歷數組並找出特定的一個呢?如果陣列的項不只 3 個而是 300 個呢?

解決辦法是建立一個陣列!

陣列可以在單一變數中儲存多個值,並且您可以根據鍵存取其中的值。


在PHP 中建立陣列

#在PHP 中,array() 函數用於建立陣列:

array();

在PHP 中,有三種類型的陣列:

·         數值陣列 - 帶有數字ID 鍵的陣列








# ·         關聯陣列 - 指定的鍵的陣列,每個鍵關聯一個值

·        #PHP 數值數組(索引數組)

###這裡有兩種建立數值數組的方法:######自動分配ID 鍵(ID 鍵總是從0 開始):####### $phones###=array("Iphone","Nokia","Oppo");######人工分配ID 鍵:######$phones[0]#######= "Iphone";### $phones[1]######="Nokia";### $phones[2]######="Oppo";######## #######下面的實例建立一個名為$cars 的數值數組,並給數組分配三個元素,然後列印一段包含數組值的文字:######實例###
<?php
 $cars=array("Volvo","BMW","Toyota");
 echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
 ?>
## ################ 取得陣列的長度- count() 函數############count() 函數用來傳回陣列的長度(元素的數量):######實例###
<?php
 $cars=array("Volvo","BMW","Toyota");
 echo count($cars);
 ?>
############ 語法:######  int count ( mixed $var [, int $mode = COUNT_NORMAL $var [, int $mode = COUNT_NORMAL ] )# ########  echo count($names);######### ############遍歷數值數組#################################################################################### #遍歷並列印數值數組中的所有值,您可以使用for 循環,如下所示:######實例###
<?php
 $cars=array("Volvo","BMW","Toyota");
 $arrlength=count($cars);
 
 for($x=0;$x<$arrlength;$x++)
 {
 echo $cars[$x];
 echo "<br>";
 }
 ?>

PHP 關聯陣列

關聯陣列是使用您指派給陣列的指定的鍵的陣列。

除了數組索引數組,PHP還有一個關聯數組,在其它電腦語言中,一般叫做hash或map。

$info = [
    'name' => 'andy', 
    'age' => 18, 
    'gender』# => 18, 
    'gender'# => 18, 

> ;

關聯數組使用數字下標是無法取得資料的,譬如$info[0]的值是空,我們需要使用鍵作為下標$info['age']的值是18 。

  

這裡有兩種建立關聯陣列的方法:

$age=array("Peter"=>"35"," Ben"=>"37","Joe"=>"43");

or:


$age['Peter']="35";
$ age['Ben']="37";

$age['Joe']="43";

#隨後可以在腳本中使用指定的鍵:

實例

<?php
 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 echo "Peter is " . $age['Peter'] . " years old.";
 ?>

遍歷關聯陣列

#遍歷並列印關聯數組中的所有值,您可以使用foreach循環,如下所示:

實例

<?php
 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
 foreach($age as $x=>$x_value)
 {
 echo "Key=" . $x . ", Value=" . $x_value;
 echo "<br>";
 }
 ?>

#多維數組

多維數組 將在PHP 進階教程部分做詳細介紹。


列印陣列

#我們可以使用echo去列印一個字串、整數、浮點型,但是我們不能用它來列印陣列

陣列是由一系列的元素組成的,如果要列印,那麼列印的應該是每個元素,而不是整個陣列

我們一般使用print_r來列印陣列(當然用var_dump也可以,但結構上不清楚)

bool print_r ( mixed $expression [, bool $return ] )

#print_r($names);

當第二個參數為true時,print_r不會直接列印數組,而是將列印的內容作為字串傳回

echo print_r($names, true);

 

取得陣列元素

#索引陣列中的每個元素都有一個自增長的序號,預設情況下,0表示第一個元素,對於

$names = ['andy', 'tom', 'jack'];

我們可以使用陣列變數名稱後面加方括號的方式來取得陣列中的元素,譬如,用$names[0]來獲得到andy,同理$names[2]代表jack

 

陣列的維度:一維

#$arr = ['王剛', '張麗', '劉偉'];

假設陣列變數名為$arr,取得「張麗」的方式:$arr[1]

 

多維數組

超過一維的數組,我們都可以稱為多維數組###

我們需要明白,數組不一定就是一個下標和值的簡單列表,實際上,數組中的每個元素還可以是另一個數組

因此如果一維數組中的數組元素又是一個數組,那麼它就變成了一個二維數組

 

數組的維度:二維

$arr = [
    ['王剛', '張麗', '劉偉'],
    ['孫麗', '李強', '李國慶日'],
    ['趙園園', '丁麗麗']
];

## ];


echo count($arr);

echo count($arr, true);

取得「李強」的方式:$arr[1][1]

陣列的維度:三維


$arr = [
    [
        ['王剛', '張麗', '劉偉'],## '李強國     生 ['孫麗', , '],
        ['趙園地', '丁麗麗']
    ],
    [
#         ['宋紅麗』, c'馬小麗'],#,  ', '黃濤'],
        ['杜磊', '朱婷婷']
    ],
];

echo count($arr);

# echo count($$($ arr, true);

取得「劉軍」的方式:$arr[1][1][1]

 

完整的PHP Array 參考手冊

如需查看所有陣列函數的完整參考手冊,請造訪我們的 PHP Array 參考手冊。

此參考手冊提供了每個函數的簡要描述和應用實例!


繼續學習
||
<?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>