首頁 > 後端開發 > php教程 > php數組的分析

php數組的分析

伊谢尔伦
發布: 2016-11-25 13:52:47
原創
970 人瀏覽過

數組的定義

       數組的本質是管理和操作一組變量,並且在數組中可以儲存任意長度的數據,也可以儲存任意類型的數據。數組中的單元稱為元素,每個元素包括下標(鍵)和值,訪問元素的時候,是透過下標來訪問,包括一維數組,二維數組及多維數組(即數組的嵌套) ,PHP中分為索引數組和關聯素組。
(1)索引數組:使用整數作為索引,如$arr=array('PHP課程','HTML課程','CSS課程'); 
(2)關聯數組:使用字串作為索引,如$arr =array('ID'=>1,'name'=>'PHP課程','class=>'PHPcn');  

PHP數組的聲明和使用

1. 直接為數組元素賦值聲明
如果索引下標不給出,就會從0開始順序索引;如果給出索引下標,下一個就會從最大的下標開始增1;如果後面出現前面的下標,則會為前面的元素重新賦值;混合聲明時,索引數組和關聯數組不互相影響。
例如:
$array[0]="I";
$array[1]="love";
$array[2]="PHP";
print_r($array);
其中,print_r()是一個特殊的函數,允許你查看PHP數組變數裡面的值,會按照一定鍵值和元素的順序顯示出該數組中的所有元素。這對於程式的調試很有幫助。
2.使用array()函數宣告
預設為索引數組,如果為關聯數組,則需要為數組指定下標,使用“鍵=>值”,多個成員之間使用" , "分割。
例如:
$fruits = array('red' => 'apple', 'yellow' => 'banana', 'purple' => 'plum',  fruits); 

PHP數組的遍歷

我們常常要對數組進行遍歷,PHP中遍歷數組的方法有多種,可以使用for()循環遍歷數組,在這裡,經常會用到sizeof()函數,此函數是常用的陣列函數之一,傳回數組的大小,即讀取數組內元素的個數,作為循環計數器的上限值。也可以使用list()函數遍歷數組,它只能用於數字索引的數組,且數字索引從0開始。

PHP中也可以使用專門用於對數組循環目的函數:foreach()。 foreach()對傳遞給它的陣列中的每一個元素執行一次,它不需要計數器或呼叫函數sizeof(),它可以自動追蹤數組在數組中的位置,同時需要更少的維護。 foreach()有兩種語法結構:
(1)foreach (array_expression as $value) 
(2)foreach (array_expression as $key => $value) 
第一種結構物會已知給定的數組_expression在循環中,目前單元的值被賦給$value 並且陣列內部的指標向前移一步。第二種結構中,目前單元的鍵名也會在每次循環中被賦給$key。 foreach 循環運行到結束,原始數組的內部指標將指向數組的結尾。例如:
foreach ($arr as $value) {
    echo "Value: $value ";
}
foreach ($arr as  " ;
}

PHP陣列的排序

對陣列元素進行排序,我們在做專案時使用也比較多,涉及的相關函數也有很多,例如 sort(),rsort(),usort(),ksort(),uasort(),uksort() 等等,這裡先介紹幾個。使用sort()和rsort()分別對陣列進行升序和降序,例如:
$arr=array(23,4,65,11,64,8);
sort($arr);
print_r($arr) ;
運作結果:
Array ( [0] => 4 [1] => 8 [2] => 11 [3] => 23 [4] => 64 [3] => 23 [4] => 64 [3] => 23 [4] => 64 [3] => 23 [4] => 64 [5] 注意到透過sort函數排序之後,陣列原有的索引鍵名會被重新指派。 rsort()會對陣列進行逆向排序。
如果使用了關聯數組,在排序後還要保持關鍵字和值的排序一致,這就需要使用kso​​rt()和asort()函數,例如:
$array=array('php'=>1,' jsp'=>2,'asp'=>3);
ksort($array);
print_r($array);
運作結果:
Array ( [asp] => 3 [jsp] => 2 [php] => 1 ) 


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板