1.PHP支持兩種數組:索引數組(indexed array)和關聯數組(associative array),前者使用數字作為鍵,後者使用字符串作為鍵。
2.遍歷索引數組
2.1 for循環語句
2.2 while循環語句
2.3 do...while循環語句
2.4 foreach語句
2.5使用list()
list()只能用於下標從0開始的索引數組,語法格式如下:
void list(mixed $var, mixed $...)
<? =('Kimi',5,'Angela' (,,)= .' '..' '. ?>
2.6 使用each()(不明白)
2.7 混合使用list()和each()遍歷數組(不明白)
3.遍歷關聯數組
常常使用foreach語句來遍歷
下面是一個使用foreach語句遍歷二維數組的例子:
<? = 'boy'=> 'name'=>'Kimi', 'age'=>4, 'nickname'=>'kimi', ), 'girl'=> 'name'=>'Cindy', 'age'=>5, 'nickname'=>'wind' ), ( => .' => <br>' ( => '  '..' => '..'<br>'; ?>
4.數組的操作
4.1 檢查數組中是否存在指定的值使用array_search()
<? =('name'=>'Kimi','age'=>5,'hobby'=>'reading',1=>2013 =('Kimi', '<p>'. =(5, '<p>'. =('read', ( =(2013, '<p>'. ?>
4.2 把一個或多個數組合並為一個數組使用array_merge()
函數返回合並後的數組,如果待合並的數組中有相同的字符串鍵名,則該鍵名後面的值將覆蓋前一個值。如果待合並的數組中包含相同的數組鍵名,後面的值將不會覆蓋原來的值,而是附加到該元素後面。
<? =('name'=>'Cindy','age'=>5 =('name'=>'Kimi','age'=>4 =(0=>2000 =(0=>2001 =(,,, ( ?>
4.3 把一個數組分割為多個數組使用array_chunk()
語法格式如下:
array array_chunk(arrray $input, int $size [, bool $preserve_keys])
其中,$input是分割的數組變量,$size是分割成的每個數組的元素個數(最後一個數組的元素可以小於$size),可選參數$preserve_keys默認為false,表示分割後的數組索引將從0開始重新編排。若設置為true,則分割後的數組將保留原數組中的鍵名。一維數組分割一次變成二維數組。
4.4 統計數組中所有值出現的次數使用array_count_values()
語法格式如下:
array array_count_values( array $input)
其中,$input是待統計的數組。該函數返回一個關聯數組,其鍵名為$input數組中的元素的值,鍵值為該元素的值在$input數組中出現的次數
<? =('Kimi',5,'age'=>5,'name'=>'Kimi',2005 =( ( ( ?>
4.5 計算數組中所有值的和使用array_sum()
語法格式如下:
number array_sum(array $array)
4.6 刪除數組中重復的值使用array_unique()
語法格式如下:
array array_unique(array $array)
其中,$array是待操作的數組。該函數首先將鍵值作為字符串進行排序,保留第一次遇到的值所對應的鍵名,最後返回一個沒有重復值得新數組。
4.7 計算數組中的元素數目使用count()
語法格式如下:
int count( array $array [, int $mode])
其中,$array是待計算的數組,可選參數$mode默認值為0,表示不進行遞歸統計元素個數,可以設置為1(或COUNT_RECURSIVE),表示遞歸統計元素的數目。
<? = 'boy'=>('name'=>'Kimi', 'nickname'=>'K', 'age'=>5), 'girl'=>('name'=>'Cindy', 'nickname'=>'C', 'age'=>4), '<P>不遞歸統計元素個數:'.( '<p>遞歸統計元素個數:'.(, ?>
4.8 對數組正向排序使用sort()
語法格式如下:
bool sort( array &$array [, int $sort_flags])
其中,參數$array是待排序的數組,可選參數$sort_flags可以為下面4種設置之一。
·SORT_REGULAR:通過正常比較進行排序(不改變類型)
·SORT_NUMBER:將數組元素作為數字來比較進行排序
·SORT_STRING:將數組元素作為字符串來比較並進行排序
·SORT_LOCATE_STRING:根據當前的區域(locate)設置把數組元素作為字符串比較並進行排序
4.9 對數組逆向排序使用rsort()
類比正向排序。
4.10 將數組中的元素順序翻轉使用array_reverse()
語法格式如下:
array array_reverse( array $array [, bool $preserve_keys])
其中,$array是待翻轉的數組,可選參數$preserve_keys默認為FALSE,表示不保留原有的鍵名,設置為TRUE後,表示翻轉數組元素時保留原有的鍵名。(關於可選參數,存在疑惑,見下面程序)
<? =('gdp'=>'GDP','ht'=>'HT','lq'=>'LQ','lc'=>'LC' =(, '<p>' ( ?>
4.11 用給定的值填充數組使用array_pad()
語法格式如下:
array array_pad( array $input, int $pad_size, mixed $pad_value)
其中,參數$input是待填充的數組,參數$pad_size是填充後數組的大小,參數$pad_value是用來填充的元素。如果$pad_size為正,填充的元素將位於$input右側,反之亦然。
4.12 計算多個數組的交集使用array_intersect()
語法格式如下:
array array_intersect( array $array1 [, array $array2 [, array $...] ] )