PHP 關聯數組的十大使用技巧
關聯數組是PHP 中使用最廣泛的一種數據類型,PHP ?內置多種操作關聯數組的函數,對開發人員來說,要從中找出最有效,最合適自己所開發程序的方法來操縱這些數組。
1、添加數組元素
PHP是一種弱類型語言,這意味著你不需要顯示聲明一個數組及其大小,相反,你可以同時聲明並填充數組。
$weixin_card_types = array(
'DISCOUNT' =>'折扣券',
'CASH' =>'代金券',
'GIFT' =>'礼品券',
)
額外的數組元素可以像下面這樣追加:
$weixin_card_types['GROUPON'] = '团购券';
如果正在處理數字索引數組,可能想使用明確的函數來?前置和追加元素,如array_push()
和array_unshift()
函數,但這些函數不能操作關聯數組。
2、刪除數組元素
從關聯數組中刪除一個元素,請使用unset()
函數,如:
unset($weixin_card_types['GIFT']);
使用數字索引數組時,刪除數組元素的辦法更多,更靈活,可以使用array_shift()
和array_pop()
函數分別從數組的開頭和末尾刪除一個元素。
3、交換鍵和值
使用array_flip()
函數很容易?就能交換鍵和值。
$weixin_filpped_card_types = array_flip($weixin_card_types);
4、合併數組
假設已經定義一個特殊票券的微信卡券類型,需要合併到前面的微信卡券,可以使用array_merge()
函數:
$weixin_ticket_types = array(
'MEETING_TICKET'=>'门票',
'SCENIC_TICKET' =>'景区门票',
'MOVIE_TICKET' =>'电影票',
'BOARDING_PASS' =>'飞机票',
);
$weixin_card_types = array_merge($weixin_card_types, $weixin_ticket_types);
5、編輯數組值
假設在數組中的數據要做些統一處理,比如增加數量,可以使用array_map()
函數給每個數組元素應用一個回調。
function set_item_count($item){
$item_count = func_get_item_count();
return $item.' - '.$item_count;
}
$weixin_card_types = array_map("set_item_count", $weixin_card_types);
6、按鍵排序
使用ksort()
函數按鍵對關聯數組進行排序。
ksort($weixin_card_types);
因為數組是通過引用參數的模式傳遞給ksort()
函數的,所以不再需要將排序結果分配給另一個變量。另外可以通過函數krsort()
按照鍵對關聯數組降序排序。
7、隨機排序
如果要對關聯數組隨機排序,可以使用shuffle()
函數來實現
shuffle($weixin_card_types);
如果不需要打亂數組順序,只是想隨機選擇一個值,那麼使用array_rand()
函數即可。
8、確定鍵和值是否存在
可以使用in_array()函數確定一個數組元素是否存在。
if (in_array("折扣券", $weixin_card_types)) {
echo "存在!";
} else {
echo "不存在!";
}
很少有人知道這個函數也可以確定一個數組鍵是否存在,在這一點上,它和array_key_exists()
函數的功能一樣。
9、搜索數組
有時候我們已經知道了數組某個值,想知道它對應的鍵名,可以通過array_search()
函數實現數組搜索。
$key = array_search('折扣券', $weixin_card_types);