首頁  >  文章  >  後端開發  >  PHP中的數組

PHP中的數組

WBOY
WBOY原創
2016-07-30 13:30:141113瀏覽

概述

PHP 中的陣列實際上是一個有序映射,映射是一種把 values 關聯到 keys 的類型。

PHP 數組可以同時含有 integer 和 string 類型的鍵名,因為 PHP 實際上並沒有區分索引數組和關聯數組。

鍵(key)可以是一個整數 integer 或字串 string
值(value)可以是任意類型的值


數組的定義

有兩種方式

可以用array() 語言結構來新建一個數組

<code>array(  key =>  value
     , ...
 )
</code>

自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 僅能夠套用於陣列和物件。

有兩種語法:

<code>foreach (array_expression as $value)
    statement

foreach (array_expression as $key => $value)
    statement
</code>

unset()

unset() 函數允許刪除陣列中的某個鍵。但要注意數組將不會重建索引。如果需要刪除後重建索引,可以用 array_values() 函數。

<code>$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')
</code>

數組函數

http://php.net/manual/zh/ref.array.php


版權聲明:本文為主原創文章,未經部落客允許不得轉載。

以上就介紹了PHP中的數組,包括了方面的內容,希望對PHP教程有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn