php中数组的键名可以重复吗

PHP数组的键名不可以重复。在PHP中,数组的键名(key)是唯一的、是不会重复存在的,即使声明两个一样的键名,后一个声明的键名也会覆盖前一个键名;利用这一特性,可以使用array_flip()反转两次数组的键名和键值,实现数组去重效果

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

PHP数组的键名不可以重复。

PHP中,数组的键名(key)是唯一的、是不会重复存在的。

示例:有这么一个空数组

$arr = array();//定义一个空数组
var_dump($arr);//输出数组

1.png

声明键值对

//定义键值对元素
$arr[id]=1;
$arr[name]=李华;
$arr[age]=20;
var_dump($arr);//输出数组

2.png

声明重复键名,并赋值

//声明重复键名,并赋值
$arr[id]=10;
$arr[age]=23;
var_dump($arr);//输出数组

3.png

可以看出,即使声明两个一样的键名,后一个声明的键名也会覆盖前一个键名。

扩展知识:利用PHP数组键名不可重复的特性,可以去除数组重复值。

只需要使用array_flip($array)函数反转两次数组的键名和键值即可:

  • 先将键名和键值互换来移除重复值

  • 然后在重新将键名和键值调换回来

<?PHP
header('content-type:text/html;charset=utf-8');   
$arr = array(a => 1, b => 1, c => 2);
var_dump($arr);
$farr=array_flip($arr);
var_dump($farr);
var_dump(array_flip($farr));
?>

4.png

推荐学习:《PHP教程

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...