IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    Denis | 邓鸿华发表于 2023-12-11 07:44:26
    love 0

    关联数组是 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);

    10、没有第十

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

    © WordPress果酱 / RSS 订阅 / 长期承接 WordPress 项目



沪ICP备19023445号-2号
友情链接