其實任何一門計算機語言中對array(數組)的操作都是一門學問,PHP也不例外。下面筆者想向各位介紹關於PHP中array操作的10個小技巧及相關的函數。
1、向array中添加元素
php是一個弱類型語言。因此不必象c語言那樣為php array聲明長度。向其中添加元素的過程也是聲明和初始化的過程。
$capitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' );
繼續添加元素也很簡單
$capitals['Arkansas'] = 'Little Rock';
如果不是關聯數組而只是數字索引的數組可以使用array_push()和array_unshift()函數增加元素
2、從array中刪除元素
從數組中移除元素可以使用unset() 函數
unset($capitals['California']);
也可以使用array_pop()或array_shift()函數從數組頭或尾部順序移除元素
3、array鍵值互換
如果希望新建數組的鍵是老數組的值而值是老數組的鍵,簡而言之就是鍵值對調,則可以使用array_flip()函數完成操作
$capitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' ); $states = array_flip($capitals); // $states = array( // 'Montgomery' => string 'Alabama', // 'Juneau' => string 'Alaska', // 'Phoenix' => string 'Arizona' // );
4、合並數組
如果希望將兩個或多個數組合並成一個新的數組,array_merge()函數可以幫上這個忙^_^
$stateCapitals = array( 'Alabama' => 'Montgomery', 'Alaska' => 'Juneau', 'Arizona' => 'Phoenix' ); $countryCapitals = array ( 'Australia' => 'Canberra', 'Austria' => 'Vienna', 'Algeria' => 'Algiers' ); $capitals = array_merge($stateCapitals, $countryCapitals);
5、修改array中的值
譬如希望將數組的中值全部改為小寫後大寫首字母,使用回調函數遞歸地對每個數組成員調用是個不錯的方法,php中這個函數是php_map()
function capitalize($element) { $element = strtolower($element); return ucwords($element); } $capitals = array( 'Alabama' => 'montGoMEry', 'Alaska' => 'Juneau', 'Arizona' => 'phoeniX' ); $capitals = array_map("capitalize", $capitals);
6、根據array的鍵為數組排序
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); ksort($capitals);
7、隨機化array元素的順序
shuffle() 和上面的ksort()函數恰恰相反,可以打亂數組現有的秩序,以達到隨機化的目的。
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); shuffle($capitals);
8、查找鍵或值是否存在
查找是否存在值使用in_array()函數
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); if (in_array("Juneau", $capitals)) { echo "Exists!"; } else { echo "Does not exist!"; }
查找是否存在鍵使用array_key_exists()函數
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); if (array_key_exists("Alaska", $capitals)) { echo "Key exists!"; } else { echo "Key does not exist!"; }
9、數組查找
這個是老生常談了,基本上都用的到array_search()函數
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); $state = array_search('Juneau', $capitals); // $state = 'Alaska'
10、使用php標准函數庫
一口氣介紹這個多操作array的函數,如果您還覺得不過瘾,可以繼續查看Standard PHP Library 中的內容^_^
$capitals = array( 'Arizona' => 'Phoenix', 'Alaska' => 'Juneau', 'Alabama' => 'Montgomery' ); $arrayObject = new ArrayObject($capitals); foreach ($arrayObject as $state => $capital) { printf("The capital of %s is %s<br />", $state, $capital); } // The capital of Arizona is Phoenix // The capital of Alaska is Juneau // The capital of Alabama is Montgomery