陣列是特殊的變數,它可以同時儲存乙個以上的值。
如果您有乙個專案列表(例如汽車品牌列表),在單個變數中儲存這些品牌名稱是這樣的:
$cars1="volvo";$cars2="bmw";
$cars3="saab";
不過,假如您希望對變數進行遍歷並找出特定的那個值?或者如果您需要儲存 300 個汽車品牌,而不是 3 個呢?
解決方法是建立陣列!
陣列能夠在單一變數名中儲存許多值,並且您能夠通過引用下標號來訪問某個值。
定義陣列 array()
可以用 array() 語言結構來新建乙個陣列。它接受任意數量用逗號分隔的 鍵(key) => 值(value)
對。
array( key => value
, ...
)// 鍵(key)可是是乙個整數 integer 或字串 string
// 值(value)可以是任意型別的值
最後乙個陣列單元之後的逗號可以省略。通常用於單行陣列定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對多行陣列定義通常保留最後乙個逗號,這樣要新增乙個新單元時更方便。
自php 5.4 起可以使用短陣列定義語法,用 替代 array()。
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);// 自 php 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];?>
key 可以是 integer 或者 string。value 可以是任意型別。
此外 key 會有如下的強制轉換:
如果在陣列定義中多個單元都使用了同乙個鍵名,則只使用了最後乙個,之前的都被覆蓋了。
例如:
<?php
$array = array(
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
);var_dump($array);
?>
執行結果:
array(1)
上例中所有的鍵名都被強制轉換為 1,則每乙個新單元都會覆蓋前乙個的值,最後剩下的只有乙個 "d"。
php 陣列可以同時含有 integer
和 string
型別的鍵名,因為 php 實際並不區分索引陣列和關聯陣列。
如果對給出的值沒有指定鍵名,則取當前最大的整數索引值,而新的鍵名將是該值加一。如果指定的鍵名已經有了值,則該值會被覆蓋。
key 為可選項。如果未指定,php 將自動使用之前用過的最大 integer
鍵名加上 1 作為新的鍵名。
<?php
$array = array("foo", "bar", "hallo", "world");
var_dump($array);
?>
執行結果:
array(4)
因為陣列中的值可以為任意值,也可是另乙個陣列。這樣可以產生遞迴或多維陣列。
<?php
$fruits = array ( "fruits" => array ( "a" => "orange",
"b" => "banana",
),"numbers" => array ( 1,
2,3,
4,5,6),
"holes" => array ( "first",
5 => "second",
"third"));
// some examples to address values in the array above
echo $fruits["holes"][5]; // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]); // remove "first"
// create a new multi-dimensional array
?>
PHP學習筆記(八)
a time to shop if preg match shop a else 結果如圖 上面 的意思是在 a中匹配shop字串,如果匹配成功,則立刻停止匹配並輸出yes,否則繼續匹配,直到沒有匹配項,便輸出no。其中的shop就是正規表示式。是分隔符,每個表示式必須包含在一對分隔符中。可以選擇任...
PHP 陣列 學習筆記
一 陣列的分類 1.索引陣列 下標是整數的陣列,下標從0開始依次類推 arr array a b c d echo arr 1 索引陣列的三種賦值方式 第一種 arr array a b 第二種 arr 2 c arr 5 f 第三種 arr2 array 0 蘋果 1 香蕉 10 橘子 索引陣列的...
PHP陣列學習筆記
php陣列學習筆記 php數學有三類,數值陣列 帶有數字id 鍵的陣列 關聯陣列 陣列中的每個 id 鍵關聯乙個值 多維陣列 包含乙個或多個陣列的陣列。如何宣告?name array a b c 這裡當然可以不用引號,它也被解析為字串,但是要注意,比如www.aaa.com這種形式,如果要他正確解析...