php數組的分析

來源:互聯網
上載者:User

數組的定義

數組的本質是管理和操作一組變數,數組中可以儲存任意長度的資料,也可以儲存任意類型的資料。數組中的單元稱為元素,每個元素包括下標(鍵)和值,訪問元素的時候,是通過下標來訪問,包括一維數組,二維數組及多維陣列(即數組的嵌套),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', 'green' => 'grape');
print_r($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)
第一種結構會遍曆給定的array_expression 數組,每次迴圈中,當前單元的值被賦給$value 並且數組內部的指標向前移一步。第二種結構中,當前單元的鍵名也會在每次迴圈中被賦給$key。foreach 迴圈運行到結束,原數組的內部指標將指向數組的結尾。例如:
foreach ($arr as $value) {
echo "Value: $value ";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value ";
}

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 [5] => 65 )
另外,我們可以注意到通過sort函數排序之後,數組原有的索引鍵名會被重新分配。rsort()會對數組進行逆向排序。
如果使用了關聯陣列,在排序後還要保持關鍵字和值的排序一致,這就需要使用ksort()和asort()函數,例如:
$array=array('php'=>1,'jsp'=>2,'asp'=>3);
ksort($array);
print_r($array);
運行結果:
Array ( [asp] => 3 [jsp] => 2 [php] => 1 )

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.