前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 关联数组的十大使用技巧

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

作者头像
Denis
发布2023-04-15 10:26:17
8090
发布2023-04-15 10:26:17
举报
文章被收录于专栏:WordPress果酱

关联数组是 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、没有第十

标题党了,以后再写了! 🙂


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、添加数组元素
  • 2、删除数组元素
  • 3、交换键和值
  • 4、合并数组
  • 5、编辑数组值
  • 6、按键排序
  • 7、随机排序
  • 8、确定键和值是否存在
  • 9、搜索数组
  • 10、没有第十
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档