概述
PHP 中的數組實際上是一個有序映射,映射是一種把 values 關聯到 keys 的類型。
PHP 數組可以同時含有 integer 和 string 類型的鍵名,因為 PHP 實際並不區分索引數組和關聯陣列。
鍵(key)可以是一個整數 integer 或字串 string
值(value)可以是任意類型的值
數組的定義
有兩種方式
可以用 array() 語言結構來建立一個數組
array( key => value , ... )
自 5.4 起可以使用短數組定義文法,用 [] 替代 array()
最後一個數組單元之後的逗號可以省略。通常用於單行數組定義中,例如常用 array(1, 2) 而不是 array(1, 2, )。對多行數組定義通常保留最後一個逗號,這樣要添加一個新單元時更方便。
數組的鍵
鍵(key)可是是一個整數 integer 或字串 string
此外 key 會有如下的強制轉換
- 包含有合法整型值的字串會被轉換為整型。例如鍵名 “8” 實際會被儲存為 8。但是 “08” 則不會強制轉換,因為其不是一個合法的十進位數值。
- 浮點數也會被轉換為整型,意味著其小數部分會被捨去。例如鍵名 8.7 實際會被儲存為 8。
- 布爾值也會被轉換成整型。即鍵名 true 實際會被儲存為 1 而鍵名 false 會被儲存為 0。
- Null 會被轉換為空白字串,即鍵名 null 實際會被儲存為 “”。
- 數組和對象不能被用為鍵名。堅持這麼做會導致警告:Illegal offset type。
如果在數組定義中多個單元都使用了同一個鍵名,則只使用了最後一個,之前的都被覆蓋了
如果對給出的值沒有指定鍵名,則取當前最大的整數索引值,而新的鍵名將是該值加一;如果當前還沒有整數索引,則鍵名將為 0。
$foo[‘bar’] 與 $foo[bar]
對於$foo[bar],如果沒有常量定義為 bar,PHP 將把它替代為 ‘bar’ 並使用之
數組的遍曆
foreach 文法結構提供了遍曆數組的簡單方式。foreach 僅能夠應用於數組和對象。
有兩種文法:
foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
unset()
unset() 函數允許刪除數組中的某個鍵。但要注意數組將不會重建索引。如果需要刪除後重建索引,可以用 array_values() 函數。
$a = array(1 => 'one', 2 => 'two', 3 => 'three');unset($a[2]);/* will produce an array that would have been defined as $a = array(1 => 'one', 3 => 'three'); and NOT $a = array(1 => 'one', 2 =>'three');*/$b = array_values($a);// Now $b is array(0 => 'one', 1 =>'three')
數組函數
http://php.net/manual/zh/ref.array.php
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了PHP中的數組,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。