PHP 中的數(shù)組實(shí)際上是一個(gè)有序映射。映射是一種把 values 關(guān)聯(lián)到 keys 的類型。此類型在很多方面做了優(yōu)化,因此可以把它當(dāng)成真正的數(shù)組,或列表(向量),散列表(是映射的一種實(shí)現(xiàn)),字典,集合,棧,隊(duì)列以及更多可能性。由于數(shù)組元素的值也可以是另一個(gè)數(shù)組,樹形結(jié)構(gòu)和多維數(shù)組也是允許的。
介紹
在 PHP 中,有三種數(shù)組類型:
- 索引數(shù)組 - 帶有數(shù)字索引的數(shù)組
- 關(guān)聯(lián)數(shù)組 - 帶有指定鍵的數(shù)組
- 多維數(shù)組 - 包含一個(gè)或多個(gè)數(shù)組的數(shù)組
可以用 array() 語(yǔ)言結(jié)構(gòu)來(lái)新建一個(gè)數(shù)組。它接受任意數(shù)量用逗號(hào)分隔的 鍵(key) => 值(value)對(duì)。
就像這樣:
array(
key => value,
...
)
// 鍵(key)可是是一個(gè)整數(shù) integer 或字符串 string
// 值(value)可以是任意類型的值
最后一個(gè)數(shù)組單元之后的逗號(hào)可以省略。通常用于單行數(shù)組定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對(duì)多行數(shù)組定義通常保留最后一個(gè)逗號(hào),這樣要添加一個(gè)新單元時(shí)更方便。
自 5.4 起可以使用短數(shù)組定義語(yǔ)法,用 [] 替代 array()。
索引數(shù)組
有兩種創(chuàng)建索引數(shù)組的方法:
索引是自動(dòng)分配的(索引從 0 開始):
$cars = array("Volvo","BMW","SAAB");
或者也可以手動(dòng)分配索引:
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";
關(guān)聯(lián)數(shù)組
關(guān)聯(lián)數(shù)組是使用您分配給數(shù)組的指定鍵的數(shù)組。
有兩種創(chuàng)建關(guān)聯(lián)數(shù)組的方法:
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
多維數(shù)組
數(shù)組中嵌套著數(shù)組,就像這樣:
$fruits = array(
"fruits" => array(
"a" => "orange",
"b" => "banana",
"c" => "apple"
),
"numbers" => array (
1,2,3,4,5,6
),
"holes" => array (
"first",
5 => "second",
"third"
)
);
小實(shí)踐
打開之前的 index.php
的文件,編輯內(nèi)容為:
<?php
// 定義了一個(gè)由多個(gè)名稱組成的數(shù)組
$names = [
"Jack",
"Cindy",
"White",
"Tony",
"Mary"
];
// 循環(huán)遍歷打印輸出這個(gè)數(shù)組中的名稱
foreach ($names as $name) {
echo $name . "<br>";
}
// 更漂亮大打印出數(shù)組的內(nèi)容
echo '<pre>';
var_dump($names);
echo '</pre>';
$person = [
'age' => 31,
'hair' => 'brown',
'career' => 'Web Developer'
];
require "index.view.php";
編輯 index.view.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<ul>
<?php foreach($person as $feature) : ?>
<li><?= $feature; ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
打開終端,進(jìn)入文件所在目錄執(zhí)行:php -S localhost:8000
打開瀏覽器訪問(wèn):http://localhost:8000
網(wǎng)頁(yè)輸出效果如下:
Jack
Cindy
White
House
Mary
array(5) {
[0]=>
string(4) "Jack"
[1]=>
string(5) "Cindy"
[2]=>
string(5) "White"
[3]=>
string(4) "Tony"
[4]=>
string(4) "Mary"
}
31
brown
Web Developer
更多
官方手冊(cè)
PHP 手冊(cè): 數(shù)組
當(dāng)然你也會(huì)了解到更多數(shù)組這種數(shù)據(jù)結(jié)構(gòu)相關(guān)的 PHP 函數(shù)。
數(shù)組函數(shù)