关联数组是 PHP 中使用最广泛的一种数据类型,PHP 内置多种操作关联数组的函数,对开发人员来说,要从中找出最有效,最合适自己所开发程序的方法来操纵这些数组。
1、添加数组元素
PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声明并填充数组。
代码语言:javascript复制$weixin_card_types = array(
'DISCOUNT' =>'折扣券',
'CASH' =>'代金券',
'GIFT' =>'礼品券',
)
额外的数组元素可以象下面这样追加:
代码语言:javascript复制$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()函数确定一个数组元素是否存在。
代码语言:javascript复制if (in_array("折扣券", $weixin_card_types)) {
echo "存在!";
} else {
echo "不存在!";
}
很少有人知道这个函数也可以确定一个数组键是否存在,在这一点上,它和 array_key_exists()
函数的功能一样。
9、搜索数组
有时候我们已经知道了数组某个值,想知道它对应的键名,可以通过 array_search()
函数实现数组搜索。
$key = array_search('折扣券', $weixin_card_types);
10、没有第十
标题党了,以后再写了!