这篇文章给大家分享的是有关PHP中如何改变一维和二维数组的键key的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
首先我们来看看如何修改一维数组的键名?
想要修改数组的键名,可以借助array_combine()函数。这里就直接给出实现代码:
<?php header("content-type:text/html;charset=utf-8"); $arr=array(1 => 1, 2 => "张三", 3 => 20, 4 => "男", 5 => 'PHP编程', 6 => '亿速云'); $key=array("id","姓名","年龄","性别","课程","网站"); $array=array_combine($key, $arr); var_dump($arr); echo "修改了键名的数组:"; var_dump($array); ?>
分析代码:
array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值。注:两个数组中元素个数必须要一致,这才能让键名和键值一一对应,否则就会报错并返回 FALSE。【推荐文章《PHP数组学习之如何以合并方式创建数组》】
我们定义一个键名数组$key
,将其作为array_combine() 函数的第一个参数(新数组的键名);而原数组$arr作为array_combine() 函数的第二个参数(新数组的键值)。
这样获得的新数组就是使用新键名的数组(键值没有改变),我们看看输出结果:
好了,了解了一维数组修改键名的方法,下面看看二维数组,同样需要使用array_combine() 函数。下面介绍两种方法:
方法1:利用foreach语句遍历数组
<?php header("content-type:text/html;charset=utf-8"); $arr=array( array(1 => 1, 2 =>"张三", 3 => 20, 4 => "男", 5 => 'PHP编程', 6 => '亿速云'), array(1 => 2, 2 =>"李四", 3 => 18, 4 => "男", 5 => '前端编程', 6 => '亿速云'), array(1 => 3, 2 =>"李娜", 3 => 19, 4 => "女", 5 => '前端编程', 6 => '亿速云') ); $key=array("id","姓名","年龄","性别","课程","网站"); foreach($arr as $k=>$v){ $arr[$k] = array_combine($key, $v); } var_dump($arr); ?>
利用foreach语句遍历一次二维数组$arr,在每次循环中将内层数组赋值给$v
;然后使用array_combine($key, $v)
语句修改内层数组$v
的键名即可。我们看看输出结果:
方法2:利用array_walk()+array_slice()函数获取内层数组
<?php header("content-type:text/html;charset=utf-8"); $arr=array( array(1 => 1, 2 =>"张三", 3 => 20, 4 => "男", 5 => 'PHP编程', 6 => '亿速云'), array(1 => 2, 2 =>"李四", 3 => 18, 4 => "男", 5 => '前端编程', 6 => '亿速云'), array(1 => 3, 2 =>"李娜", 3 => 19, 4 => "女", 5 => '前端编程', 6 => '亿速云') ); $key=array("id","姓名","年龄","性别","课程","网站"); function foo(&$v, $k, $key) { $v = array_combine($key, array_slice($v, 0)); } array_walk($arr, 'foo', $key); echo "修改了键名的数组:"; var_dump($arr); ?>
array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
我们看看输出结果:
感谢各位的阅读!关于“PHP中如何改变一维和二维数组的键key”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。