當(dāng)前位置:首頁 > IT技術(shù) > 編程語言 > 正文

PHP 零基礎(chǔ)入門筆記(12):數(shù)組 array
2022-04-29 13:57:38


數(shù)組 array

數(shù)組的概念

數(shù)據(jù)的組合,將一組數(shù)據(jù)存儲到一個指定的容器中,用變量指向該容器。

可以通過變量一次性得到該容器中的所有數(shù)據(jù)

數(shù)組的定義

// 1、使用array關(guān)鍵字
$變量 = array(元素1, 元素2, ...);

// 2、使用中括號
$變量 = [元素1, 元素2, ...];

// 3、隱形定義數(shù)組
$變量[] = 值1; // 默認(rèn)下標(biāo)是數(shù)字,默認(rèn)從0開始
$變量[下標(biāo)] = 值; // 下標(biāo)或者key,可以是數(shù)字或字符串
// 下標(biāo)自動為前面最大+1

示例

// 方式一:
$arr = array('Tom', 'Jack', 'Steve');

// 方式二:
$arr = ['Tom', 'Jack', 'Steve'];

// 方式三:
$arr[] = 'Tom';
$arr[] = 'Jack';
$arr[] = 'Steve';

// 輸出結(jié)果一樣
var_dump($arr);
// array(3) {
// [0]=> string(3) "Tom"
// [1]=> string(4) "Jack"
// [2]=> string(5) "Steve"
// }

PHP 數(shù)組特點

1、可以整數(shù)下標(biāo)或者字符串下標(biāo)

  • 索引數(shù)組:數(shù)組下標(biāo)為整數(shù)
  • 關(guān)聯(lián)數(shù)組:數(shù)組下標(biāo)為字符串
  • 混合數(shù)組:不同下標(biāo)可以混合存在

2、數(shù)組元素的順序以放入順序為準(zhǔn),跟下標(biāo)無關(guān)

3、數(shù)字下標(biāo)的自增長特性

4、特殊值下標(biāo)的自動轉(zhuǎn)換

<?php

$arr[false] = 'Tom';
$arr[true] = 'Jack';
$arr[null] = 'Steve';

var_dump($arr);
// array(3) {
// [0] => string(3) "Tom"
// [1] => string(4) "Jack"
// [""]=> string(5) "Steve"
// }

5、PHP 數(shù)組元素沒有類型限制

6、PHP 數(shù)組元素沒有長度限制

多維數(shù)組

多維數(shù)組:數(shù)組里的元素又是數(shù)組

1、二維數(shù)組: 數(shù)組中的所有元素都是一維數(shù)組

<?php

$arr = [
[
'name'=> 'Tom',
'age'=> 23
],
[
'name'=> 'Jack',
'age'=> 24
],

];

var_dump($arr);


// array(2) {
// [0]=> array(2) {
// ["name"] => string(3) "Tom"
// ["age"] => int(23)
// }
// [1]=> array(2) {
// ["name"] => string(4) "Jack"
// ["age"] => int(24)
// }
// }

2、多維數(shù)組:二維數(shù)組中的元素可以繼續(xù)是數(shù)組

不建議超過三維以上的數(shù)組

3、異型數(shù)組(不規(guī)則數(shù)組)

數(shù)組的中的元素不規(guī)則,有普通基本變量也有數(shù)組

數(shù)組遍歷

普通數(shù)組可以通過下標(biāo)來訪問

<?php

$arr = [
[
'name'=> 'Tom',
'age' => 23
],
[
'name'=> 'Jack',
'age' => 24
],
];

// 訪問一維
var_dump($arr[0]);
// array(2) {
// ["name"] => string(3) "Tom"
// ["age"] => int(23)
// }

// 訪問二維
var_dump($arr[0]['name']);
// string(3) "Tom"

1、Foreach 語法

foreach($數(shù)組 as [$key =>] $value){
// key下標(biāo) value值
}

示例

<?php

$arr = [
[
'name'=> 'Tom',
'age' => 23
],
[
'name'=> 'Jack',
'age' => 24
],
];

foreach($arr as $index => $item){
echo $index, $item['name'], $item['age'] . PHP_EOL;
}
// 0Tom23
// 1Jack24

2、foreach 遍歷原理

本質(zhì)是數(shù)組內(nèi)部有一個指針,默認(rèn)指向數(shù)組元素的第一個元素

foreach 就是利用指針取獲取數(shù)據(jù),同時移動指針

  1. foreach 會重置指針,讓指針指向第一個元素
  2. 進(jìn)入 foreach 循環(huán),通過指針獲取元素
  3. 進(jìn)入循環(huán)體執(zhí)行
  4. 重復(fù)此過程,直到取不到元素

3、for 循環(huán)遍歷數(shù)組

獲取數(shù)組長度 count()

要求數(shù)組元素下標(biāo)有規(guī)律

<?php

$arr = ['Tom', 'Jack', 'Steve'];

for($i =0, $len =count($arr); $i < $len; $i ++){
echo '[' . $i . '] ' . $arr[$i] . PHP_EOL;
}
// [0] Tom
// [1] Jack
// [2] Steve

4、while 循環(huán)

<?php

$arr = ['Tom', 'Jack', 'Steve'];

$i =0;
$len =count($arr);
while($i < $len){
echo '[' . $i . '] ' . $arr[$i] . PHP_EOL;
$i ++;
}
// [0] Tom
// [1] Jack
// [2] Steve

4、each (7 版本以后已棄用)

$arr = ['Tom', 'Jack', 'Steve'];


// 通過each移動數(shù)組指針下移
while($item = each($arr)){
var_dump($item);
}
// array(4) {
// [0] => int(0)
// [1] => string(3) "Tom"
// ["key"] => int(0)
// ["value"] => string(3) "Tom"
// }

5、list 按照下標(biāo)取值

<?php

$arr = ['Tom', 'Jack', 'Steve'];

list($name1, $name2) = $arr;
var_dump($name1, $name2);
// string(3) "Tom"
// string(4) "Jack"

6、while + each + list 配合

<?php
$arr = ['Tom', 'Jack', 'Steve'];


// 通過each移動數(shù)組指針下移
while(list($key, $value) = each($arr)){
echo '[' . $key . '] ' . $value . PHP_EOL;
}
// [0] Tom
// [1] Jack
// [2] Steve



本文摘自 :https://blog.51cto.com/u

開通會員,享受整站包年服務(wù)立即開通 >