PHP新數組——重新認識數組
傳統的PHP數組只有數字索引和關聯索引兩種方式,這兩種方式都有自己的弱點。在PHP 7中引入了新的數組。這個新數組提供了一種直接使用字符作為索引的新方式,同時還支持更多的語法和運算符。本文將詳細介紹PHP新數組的用法,及其與傳統數組的差別。
新數組的定義
PHP新數組使用新的語法定義:[]或者array()。這個數組不需要通過關鍵字array創建,在創建時就直接指定數組的內容。
下面是一個PHP新數組的例子:
$fruits = [ 'bananas' => [ 'color' => 'yellow', 'shape' => 'curved', 'location' => 'tropics' ], 'apples' => [ 'color' => 'red', 'shape' => 'round', 'location' => 'temperate' ], 'oranges' => [ 'color' => 'orange', 'shape' => 'round', 'location' => 'tropics' ] ];
這里我們定義了一個$fruits數組,這個數組存儲了三個水果:香蕉、蘋果和橙子。在每個水果的子數組里我們存儲了一些有用的信息:它們的顏色、形狀和產地。
新數組的索引
我們可以看到,新數組的索引不再是數字了,而是直接使用字符。當然數字索引也可以使用,但是用了字符索引之后數組就變得更加直觀易用。
通過字符索引我們可以提高代碼的可讀性,同時也讓代碼更加簡潔。舉個例子,下面的使用傳統數組來存儲水果信息的代碼:
$fruits = [ ['name' => 'bananas', 'color' => 'yellow', 'shape' => 'curved', 'location' => 'tropics'], ['name' => 'apples', 'color' => 'red', 'shape' => 'round', 'location' => 'temperate'], ['name' => 'oranges', 'color' => 'orange', 'shape' => 'round', 'location' => 'tropics'] ];
這個數組與前面例子中的新數組是等效的,但是它的可讀性要差很多。因為我們需要查看數組結構來得知每個元素代表的是哪個水果,而在新數組中,直接看鍵名就可以很明確地知道數組中的內容。
新數組的自增運算符
PHP新數組還支持自增運算符。自增運算符可以簡單地為數組的某個鍵添加一個值。
以下是官方文檔中的示例:
$letters = ['a', 'b']; echo ++$letters[0]; //輸出b
在新的數組中,我們同樣可以使用自增運算符,以下是一個示例:
$counts = ['oranges' => 20]; $counts['apples']++; $counts['oranges']++; print_r($counts);
在這個示例中,我們將apples和oranges的初始值都設置為20。然后使用自增運算符分別使apples和oranges分別增加1。最后我們輸出整個數組的內容,可以看到數組的值已經成功增加。
新數組的foreach循環
在foreach循環中,新數組的用法與傳統數組類似。以下是一個示例:
$fruits = [ 'bananas' => [ 'color' => 'yellow', 'shape' => 'curved', 'location' => 'tropics' ], 'apples' => [ 'color' => 'red', 'shape' => 'round', 'location' => 'temperate' ], 'oranges' => [ 'color' => 'orange', 'shape' => 'round', 'location' => 'tropics' ] ]; foreach($fruits as $fruit) { echo $fruit['location'] . "\n"; }
在這個示例中,我們使用foreach循環來遍歷整個$fruits數組,并輸出每種水果的產地。
新數組的訪問
新數組的訪問方式與傳統數組有所不同。新數組采用了一種更加直觀的方式來訪問元素。以下是一個示例:
$fruits = [ 'bananas' => [ 'color' => 'yellow', 'shape' => 'curved', 'location' => 'tropics' ], 'apples' => [ 'color' => 'red', 'shape' => 'round', 'location' => 'temperate' ], 'oranges' => [ 'color' => 'orange', 'shape' => 'round', 'location' => 'tropics' ] ]; echo $fruits['bananas']['color'];
在這個示例中,我們使用一個echo語句輸出了$fruits數組中“香蕉”的顏色。
新數組的賦值
在新數組中,我們同樣可以使用賦值語句。賦值語句可以給數組的某個元素賦新的值,或者創建新的元素。以下是一個示例:
$fruits = [ 'bananas' => [ 'color' => 'yellow', 'shape' => 'curved', 'location' => 'tropics' ], 'apples' => [ 'color' => 'red', 'shape' => 'round', 'location' => 'temperate' ], 'oranges' => [ 'color' => 'orange', 'shape' => 'round', 'location' => 'tropics' ] ]; $fruits['apples']['color'] = 'green'; $fruits['pears'] = ['color' => 'yellow', 'shape' => 'pear-shaped']; print_r($fruits);
在這個示例中,我們修改了“apple”的顏色,將它的顏色改為了“green”。同時我們向$fruits數組中增加了一個新的梨子,顏色為黃色,形狀為梨形。最終,我們輸出整個數組的內容,可以看到數組中的變化。
新數組的一些特點總結
PHP新數組是一個更加直觀、精簡和易用的數組類型。以下是它的一些特點:
1. 索引可以是字符;
2. 通過自增運算符可以方便地添加值;
3. foreach循環可以方便地遍歷整個數組;
4. 訪問元素的方式更加直觀;
5. 賦值語句可以方便地修改或增加元素。
總之,PHP新數組的用途很廣,應該成為每一位PHP程序員的工具之一。因為它可以帶來更好的可讀性、可維護性和可擴展性。