PHP 关联数组的十大使用技巧

2023-04-15 10:26:17 浏览数 (1)

关联数组是 PHP 中使用最广泛的一种数据类型,PHP 内置多种操作关联数组的函数,对开发人员来说,要从中找出最有效,最合适自己所开发程序的方法来操纵这些数组。

1、添加数组元素

PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声明并填充数组。

代码语言:javascript复制
$weixin_card_types = array(
	'DISCOUNT'	=>'折扣券',
	'CASH'		=>'代金券',
	'GIFT'		=>'礼品券',
)

额外的数组元素可以象下面这样追加:

代码语言:javascript复制
$weixin_card_types['GROUPON'] = '团购券';

如果正在处理数字索引数组,可能想使用明确的函数来前置和追加元素,如 array_push()array_unshift() 函数,但这些函数不能操作关联数组。

2、删除数组元素

从关联数组中删除一个元素,请使用 unset() 函数,如:

代码语言:javascript复制
unset($weixin_card_types['GIFT']);

使用数字索引数组时,删除数组元素的办法更多,更灵活,可以使用 array_shift()array_pop() 函数分别从数组的开头和末尾删除一个元素。

3、交换键和值

使用 array_flip() 函数很容易就能交换键和值。

代码语言:javascript复制
$weixin_filpped_card_types = array_flip($weixin_card_types);

4、合并数组

假设已经定义一个特殊票券的微信卡券类型,需要合并到前面的微信卡券,可以使用 array_merge() 函数:

代码语言:javascript复制
$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() 函数给每个数组元素应用一个回调。

代码语言:javascript复制
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() 函数按键对关联数组进行排序。

代码语言:javascript复制
ksort($weixin_card_types);

因为数组是通过引用参数的模式传递给 ksort() 函数的, 所以不再需要将排序结果分配给另一个变量。另外可以通过函数 krsort() 按照键对关联数组降序排序。

7、随机排序

如果要对关联数组随机排序,可以使用 shuffle() 函数来实现

代码语言:javascript复制
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() 函数实现数组搜索。

代码语言:javascript复制
$key = array_search('折扣券', $weixin_card_types);

10、没有第十

标题党了,以后再写了!

0 人点赞