PHP中的數組

來源:互聯網
上載者:User
概述

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教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.