加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_瑞安站长网 (https://www.ruian888.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中什么是关联数组

发布时间:2022-10-12 12:47:51 所属栏目:PHP教程 来源:
导读:  在php中,关联数组是值以字符串或字符串、数字混合为键名的数组;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。关联数组的键名可以是任何一个整数或字符串;如果键名是一个字符串,则要给这个键
  在php中,关联数组是值以字符串或字符串、数字混合为键名的数组;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。关联数组的键名可以是任何一个整数或字符串;如果键名是一个字符串,则要给这个键名加上一个定界修饰符:单引号“''”或双引号“""”。
 
  PHP数组_php数组赋值给数组_php关联数组和索引数组
 
  php入门到就业线上直播课:
 
  API 文档、设计、调试、自动化测试一体化协作工具:点击使用
 
  本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
 
  数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。
 
  数组可以存入不同类型的数据,是一个复合数据类型。数据结构如下图:
 
  1.jpg
 
  在 PHP 数组中PHP数组,无论什么类型的键名都会有一个值与其相对应,即一个键/值对,根据数组键名数据类型的不同,我们可以把 PHP 数组分为两种类型:
 
  PHP 关联数组
 
  关联数组的下标(键名)由数值和字符串混合的形式组成,如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。
 
   '苹果','1' => '香蕉','2' => '橘子','3' => '李子','4' => '草莓');
  var_dump($arr1);
  echo "关联数组:";
  $arr2 = array('Apple' => '苹果','Banana' => '香蕉','Orange' => '橘子','Plum' => '李子','Strawberry' => '草莓');
  var_dump($arr2);
  $arr3 = array('苹果','香蕉','橘子','Plum' => '李子','草莓');
  var_dump($arr3);
  ?>
  登录后复制
 
  1.png
 
  关联数组的键名可以是任何一个整数或字符串。如果键名是一个字符串,则要给这个键名加上一个定界修饰符——单引号''或双引号""。对于索引数组,为了避免混清,最好也加上定界符。
 
  注:键名不可以为NULL。
 
  扩展知识:索引数组和关联数组可以相互转换
 
  1、关联数组转为索引数组
 
  array_values()函数的作用是返回数组中所有元素的值
 
  array_values(array)
  登录后复制
 
  使用起来非常简单,只有一个必选参数,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。
 
  简单来说,利用该函数可以重置数组键名,将字符串或数值混乱的键名转为从0开始且以1递增的数字键名。
 
  array_values() 函数特别适合用于数组中元素下标混乱的数组(可重置数字键),或者用于将关联数组转化为索引数组。
 
  65,"Harry"=>80,"John"=>78,"Clark"=>90,2,3,4);
  echo "原数组:";
  var_dump($arr);
  $res=array_values($arr);
  echo "转为索引数组后:";
  var_dump($res);
  ?>
  登录后复制
 
  2.png
 
  2、索引数组转为关联数组
 
  array_combine()函数通过合并两个数组的方式创建了一个新数组,其中$keys数组中的元素作为了新数组的键名,$values数组的元素为作为了新数组的键值。
 
  array_combine($keys,$values)
  登录后复制
 
  但需要注意的是,使用array_combine()函数创建数组时,$keys数组和$values数组中的元素个数必须要一致,这才能让键名和键值一一对应,否则就会报错并返回 FALSE。
 
  且$keys数组不可为多维数组,否则也会报错;但$values数组可以为多维数组。
 

(编辑:天瑞地安资讯网_瑞安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!