PHP數組(1)

1、創建數組
在編程語言中,數值和字符串被稱爲標量變量,一個標量變量只能表示一個單獨的數值或字符串。比如,$ydtx=“移動通信”中的變量$ydtx就是一個標量變量,而我們在實際使用中如何用一個變量來表示出多個數值或字符串呢?比如,如何表示“通信基礎”、“通信設備”、“測試優化”、“3G”、“LTE”等諸多字符串呢?這時我們就需要用到數組,數組雖然複雜卻非常有用,它能夠讓一個變量承載更多的信息。創建數組的方法是使用array()函數:
$ydtx = array (
1 => '通信基礎',
2 => '通信設備',
3 => '測試優化',
4 => '3G',
5 => 'LTE'
);
一個數組中必須包含鍵(索引)和值,鍵和值組成一個元素,所以數組與標量變量的不同之處在於數組擁有多個元素。鍵由數值或字符串組成,比如上面的1、2、3、4、5就是用數字表示的鍵(索引),“通信基礎”、“通信設備”、“測試優化”、“3G”、“LTE”等就是這些鍵分別對應的值。鍵和值就構成數組的一個元素。print_r ()函數可以輸出數組。要輸出上面的數組可以這樣書寫(爲了讓輸出結果的結構更清晰,可以使用<pre></pre>標籤):
<pre>
<?php
$ydtx = array (
1 => '通信基礎',
2 => '通信設備',
3 => '測試優化',
4 => '3G',
5 => 'LTE'
);
print_r ($ydtx);
?>
</pre>

輸出結果參見圖1:


圖1

2、索引數組與關聯數組
數組中的鍵爲數值的數組被稱爲索引數組,鍵爲字符串的數組被稱爲關聯數組。關聯數組在其他編程語言中被稱爲散列表(hash)。前面提到的數組$ydtx就是索引數組(因爲鍵是用數值來表示的):
$ydtx = array (
1 => '通信基礎',
2 => '通信設備',
3 => '測試優化',
4 => '3G',
5 => 'LTE'
);
有時我們爲了讓數組中的值更有意義就需要將值對應的鍵用字符串來表示,比如下面代碼中的鍵就是用更有意義的字符串來描述“通信基礎”這一課程中各章的名稱,這類數組就是關聯數組:
$chapter = array (
'第一章' => '通信系統概述',
'第二章' => '通信協議',
'第三章' => '傳輸技術',
'第四章' => '調製方式'
);
下面是輸出以上兩種類型數組的代碼,這次我們用var_dump()函數來輸出數組,var_dump()函數比print_r()函數能夠輸出更詳細的數組信息(能夠顯示數組中的元素數量以及每個字符串值的長度):
<pre>
<?php
$ydtx = array (
1 => '通信基礎',
2 => '通信設備',
3 => '測試優化',
4 => '3G',
5 => 'LTE'
);
var_dump ($ydtx);
$chapter = array (
'第一章' => '通信系統概述',
'第二章' => '通信協議',
'第三章' => '傳輸技術',
'第四章' => '調製方式'
);
var_dump ($chapter);
?>
</pre>
以上代碼的輸出結果參見圖2:

圖2

3、向數組添加元素
直接向數組添加元素需要非常小心,給大家總結一下正確的添加方法:
(1)向索引數組添加元素
比如已有索引數組:
$ydtx = array (
1 => '通信基礎',
2 => '通信設備',
3 => '測試優化',
4 => '3G',
5 => 'LTE'
);
若要向這個數組添加“室內分佈系統”,代碼如下:
$ydtx[6] = '室內分佈系統';

$ydtx[ ] = '室內分佈系統';
注:如果鍵都是數值、變量或者常量,那麼不用將之用引號引用。
對於索引數組,方括號內如未填寫數值,那麼“室內分佈系統”就會按順序添加到最後,如圖3所示:

圖3

(2)向關聯數組添加元素
比如下面這個數組:
$chapter = array (
'第一章' => '移動通信發展史',
'第二章' => '通信系統概述’,
'第三章' => '通信協議',
'第四章' => '傳輸技術'
);
若要向這個數組添加“調製方式”,代碼如下:
$chapter['第五章'] = '調製方式';
和索引數組不同,向關聯數組添加元素時必須要指定鍵,否則添加的內容會和數組中已有的鍵和值進行奇怪的組合。
總結:
無論向索引數組還是向關聯數組添加元素時一定要使用中括號。如沒有中括號將引發錯誤,比如使用以下代碼會引發錯誤:
$ydtx = ‘室內分佈系統’;
用上面這行代碼添加數組的結果是添加的值將替換整個已有的數組,只會留下一個字符串或者數值。

待續……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章