1. 程式人生 > 程式設計 >PHP陣列基本用法與知識點總結

PHP陣列基本用法與知識點總結

本文例項講述了PHP陣列基本用法與知識點。分享給大家供大家參考,具體如下:

初識陣列

  • 概念: 陣列就是一個可以儲存一組或一系列數值的變數
  • 陣列組成: 陣列是由一個或多個數組元素組成的
  • 陣列元素: 一每個陣列由鍵(Key)和值(Value)構成
  • 鍵: "鍵"為元素的是被名稱,也被稱為陣列下標
  • 值: “值”為元素的內容
  • 對映:“鍵”和“值”之間存在一種對應關係,稱之為對映
  • 型別劃分: 根據鍵的資料型別,可以將陣列劃分為索引陣列和關聯陣列,前者使用數字作為鍵,後者使用字串作為鍵。

1. 索引陣列

索引陣列: 指鍵名為整數的陣列。預設情況下,索引陣列的鍵名是從0開始,並依次遞增。它主要適用於利用位置來標識陣列元素的情況。另外,索引陣列的鍵名也可以自己指定

2.關聯陣列

關聯陣列: 指鍵名為字串的陣列。通常情況下,關聯陣列元素的“鍵”和“值”之間有一定的義務邏輯關係。因此,通常使用關聯陣列儲存一系列具有邏輯關係的變數。關聯陣列的“鍵”都是字串,並與“值”之間具有意義對應的關係

陣列的基本使用

1. 建立陣列的方式

  • 使用array()函式 建立陣列
  • 賦值方式
  • 短陣列定義法(php5.4增加的)

1.陣列的建立——array()語言結構方式

array()語言結構中的陣列元素使用“鍵=>值”的方式進行表示,各元素之間使用逗號進行分割。

//定義索引陣列
$fruits = array('apple','grape','pear'); // 省 略鍵名
$sports = array(2 => 'basketball',4 => 'swimming'); // 指定鍵名

陣列在省略鍵名的設定時,預設從0開始,依此遞增加1,因此該陣列元素的鍵名依次為“0、1、2”。
除此之外,還可以根據實際需求自定義陣列元素的鍵名,如上述示例中的$sports陣列變數,將其第1個元素鍵名設定為2,第2個元素的鍵名設定為4

2. 陣列的定義——array()語言結構方式

//定義關聯陣列
$info = array('id' => 10,'name' => 'Tom','tel' => 18810888188);

在定義關聯陣列時 “鍵”則有明確的資料型別要求,具體如下。

  • 鍵只能是整型或字串型的資料,如果是其他型別,則會執行型別自動轉換
  • 合法整型的字串會被轉為整型,如“2”轉為2,而“02”則不會被轉換
  • 浮點數會被捨去小數部分直接轉換成整型,如“2.6”轉為2
  • 布林型別的true會被轉為1,false轉為0
  • NULL型別會被轉為空字串
  • 若陣列中存在相同鍵名的元素時,後面的元素會覆蓋前面元素的值

在定義陣列時,還可以定義沒有任何元素的陣列,以及既有索引表示方式、又有關聯表示方式的陣列元素。

//定義混合陣列
$temp = array();
$mixed = array(2,'str','id' => 5,5 => 'b','a');

  • $mixed陣列的元素“b”指定了數字鍵名為“5”
  • “b”元素後的“a”元素會自動將前面最大的數字鍵名加1後,作為其鍵名,即5+1得到鍵名6。
//定義多維陣列
$data = array(
 0 => array('name' => 'Tom','gender' => '男'),1 => array('name' => 'Lucy','gender' => '女'),2 => array('name' => 'Jimmy','gender' => '男')
);

3. 陣列的定義——賦值方式

使用賦值方式定義陣列,實際上就是建立一個數組變數,然後使用賦值運算子直接給變數賦值。

//賦值方式
$arr[] = 123;  // 儲存結果:$arr[0] = 123
$arr[] = 'hello';  // 儲存結果:$arr[1] = 'hello'
$arr[4] = 'PHP';  // 儲存結果:$arr[4] = 'PHP'
$arr['name'] = 'Tom'; // 儲存結果: $arr['name'] = 'Tom'
$arr[] = 'Java';  // 儲存結果:$arr[5] = 'Java'

賦值方式定義陣列就是單獨為陣列元素賦值。需要注意的是,賦值方式不能定義一個空陣列。

4. 陣列的定義——短陣列定義法

短陣列定義法([])與array()語法結構相同,只需將array()替換為[]即可

//短陣列定義法
 // 相當於:array('wind','fine')
$weather = ['wind','fine'];
// 相當於:array('id' => 12,'name' => 'PHP')
$object = ['id' => 12,'name' => 'PHP'];
// 相當於:array(array(1,3),array(2,4))
$num = [[1,3],[2,4]];

2.訪問陣列

陣列定義完成後,若想要檢視陣列中某個具體的元素,則可以通過“陣列名[鍵]”的方式獲取。

```
//陣列名[鍵]
$sub = ['PHP','Java','C','Android'];
$data = ['goods' => 'clothes','num' => 49.90,'sales' => 500];
echo $sub[1]; // 輸出結果:Java
echo $sub[3]; // 輸出結果:Android
echo $data['goods']; // 輸出結果:clothes
echo $data['sales']; // 輸出結果:500
```

若要一次檢視陣列中的所有元素,則可以利用前面學習過的輸出語句函式print_r()和var_dump(),並且通常情況下為了使輸出的函式按照一定的格式列印,檢視時經常與pre標記一起使用。

3.遍歷陣列

所謂遍歷陣列就是一次訪問陣列中所有元素的操作。通常情況下,使用foreach()語句完成陣列的遍歷。

//方式一
foreach (陣列名稱 as 鍵 => 值) {
  // 處理語句
}
//方式二
foreach (陣列名稱 as 值) {
  // 處理語句
}

“鍵”和“值”的變數名可以根據實際情況隨意設定

4.陣列的刪除

在陣列定義完成後,有時也需要根據實際情況去除陣列的某個元素。

5.陣列操作符

不僅前面講解的標量資料型別可以進行比較運算,陣列這種複合資料型別也可以進行運算,不過陣列有其專門提供的陣列操作符進行對應的運算。

在這裡插入圖片描述

“+”為聯合運算子,用於合併陣列,如果出現下標相同的元素,則保留第1個數組內的元素。

$num = [2,4];
$alp = ['a','b','c'];
$mer1 = $num + $alp;
$mer2 = $alp + $num;
print_r($mer1); // 輸出結果:Array ( [0] => 2 [1] => 4 [2] => c ) 
print_r($mer2); // 

更多關於PHP相關內容感興趣的讀者可檢視本站專題:《PHP陣列(Array)操作技巧大全》、《PHP常用遍歷演算法與技巧總結》、《php字串(string)用法總結》、《php常用函式與技巧總結》、《PHP錯誤與異常處理方法總結》、《PHP基本語法入門教程》、《php面向物件程式設計入門教程》及《PHP數學運算技巧總結》

希望本文所述對大家PHP程式設計有所幫助。