您现在的位置是:群英 > 开发技术 > PHP语言
PHP关联数组是怎样,如何转索引数组
Admin发表于 2022-12-09 17:50:20568 次浏览
在实际案例的操作过程中,我们可能会遇到“PHP关联数组是怎样,如何转索引数组”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

在php中,关联数组是值以字符串或字符串、数字混合为键名的数组;如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。关联数组的键名可以是任何一个整数或字符串;如果键名是一个字符串,则要给这个键名加上一个定界修饰符:单引号“''”或双引号“""”。

数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。

数组可以存入不同类型的数据,是一个复合数据类型。数据结构如下图:


在 PHP 数组中,无论什么类型的键名都会有一个值与其相对应,即一个键/值对,根据数组键名数据类型的不同,我们可以把 PHP 数组分为两种类型:

  • 以数字作为键名的数组,即索引数组(Indexed Array);

  • 以字符串或字符串、数字混合为键名的数组,即关联数组(Associative Array)。

PHP 关联数组

关联数组的下标(键名)由数值和字符串混合的形式组成,如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。

<?php
header("Content-type:text/html;charset=utf-8");
echo "索引数组:";
$arr1 = array('0' => '苹果','1' => '香蕉','2' => '橘子','3' => '李子','4' => '草莓');
var_dump($arr1);

echo "关联数组:";
$arr2 = array('Apple' => '苹果','Banana' => '香蕉','Orange' => '橘子','Plum' => '李子','Strawberry' => '草莓');
var_dump($arr2);
$arr3 = array('苹果','香蕉','橘子','Plum' => '李子','草莓');
var_dump($arr3);
?>
登录后复制

关联数组的键名可以是任何一个整数或字符串。如果键名是一个字符串,则要给这个键名加上一个定界修饰符——单引号''或双引号""。对于索引数组,为了避免混清,最好也加上定界符。

注:键名不可以为NULL

扩展知识:索引数组和关联数组可以相互转换

1、关联数组转为索引数组

array_values()函数的作用是返回数组中所有元素的值

array_values(array)
登录后复制

使用起来非常简单,只有一个必选参数,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。

简单来说,利用该函数可以重置数组键名,将字符串或数值混乱的键名转为从0开始且以1递增的数字键名。

array_values() 函数特别适合用于数组中元素下标混乱的数组(可重置数字键),或者用于将关联数组转化为索引数组。

<?php
header('content-type:text/html;charset=utf-8');  
$arr=array("Peter"=>65,"Harry"=>80,"John"=>78,"Clark"=>90,2,3,4);
echo "原数组:";
var_dump($arr);
$res=array_values($arr);
echo "转为索引数组后:";
var_dump($res);
?>
登录后复制

2、索引数组转为关联数组

array_combine()函数通过合并两个数组的方式创建了一个新数组,其中$keys数组中的元素作为了新数组的键名,$values数组的元素为作为了新数组的键值。

array_combine($keys,$values)
登录后复制

但需要注意的是,使用array_combine()函数创建数组时,$keys数组和$values数组中的元素个数必须要一致,这才能让键名和键值一一对应,否则就会报错并返回 FALSE。

$keys数组不可为多维数组,否则也会报错;但$values数组可以为多维数组。

<?php
header("Content-type:text/html;charset=utf-8");
$keys=array("a","b","c","d");
$values=array("red","green","blue","yellow");
var_dump($keys);
var_dump($values);
echo "使用array_combine()合并数组后:";
var_dump(array_combine($keys,$values));
?>
登录后复制



感谢各位的阅读,以上就是“PHP关联数组是怎样,如何转索引数组”的内容了,通过以上内容的阐述,相信大家对PHP关联数组是怎样,如何转索引数组已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注群英网络,群英网络将为大家推送更多相关知识点的文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: php关联数组
相关信息推荐
2022-05-12 17:35:24 
摘要:本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于数组的相关问题,包括了命名规则、自动类型推断、静态动态初始化、多维数组的其他写法、常见错误写法等等内容,下面一起来看一下,希望对大家有帮助。
2022-08-19 17:50:23 
摘要:下面小编就为大家带来一篇Python的str 以及常用的命令。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2022-05-12 17:35:07 
摘要:本篇文章给大家带来了关于java的相关知识,其中主要介绍了Java反射机制的相关问题,动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,希望对大家有帮助。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部