您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP数组学习之怎么将键名key和值的位置进行互换

2024/4/14 6:05:58发布13次查看
在之前的文章《php数组学习之二维数组怎么进行排序(2种方法)》中,我们了解了根据某一字段进行二维数组排序的2种方法,有需要的朋友可以学习了解一下~
→相关推荐:《php数组学习系列大汇总(持续更新~)》
本文的主题是“将键名key和值的位置进行互换”,简单来说就是交换数组中的键名和键值。
而这一操作,php中有一个内置函数就是这个功能,那就是 array_flip($array) 函数。
我们通过下面的例子来具体看看
<?php$arr = array('a', 'b', '1', 2, 3);var_dump($arr);var_dump(array_flip($arr));?>
输出结果:
说明:$array数组中的值需要能够作为合法的键名(例如 int 或者 string),如果值的类型不对将发出一个警告,并且有问题的键值对将不会反转。
如果同一个键值出现了多次,那么最后一个键名将作为它的值,所有其他的都丢失了。
<?php$arr = array("a" => 1, "b" => 1, "c" => 2);var_dump($arr);var_dump(array_flip($arr));?>
输出结果:
可以看出:利用array_flip()可以非常快速的交换键名和键值。那么如果不使用array_flip()函数,要怎么交换键名和键值呢?下面给大家介绍一下。
思路:
首先使用array_keys($array)获得数组中的键名,返回一个键名数组;
然后使用array_values($array)获取数组中所有元素的值,返回一个键值数组;
最后使用array_combine($keys,$values)来合并两个数组以创建新数组,第一个参数会作为新数组的键名,第二个参数会作为新数组的键值。(对array_combine()函数不了解,可以阅读文章《php数组学习之如何以合并方式创建数组》)
实现代码:
<?php$arr = array('a', 'b', '1', 2, 3,'c');var_dump($arr);//获取全部键名$keys=array_keys($arr);//获取全部键值$values=array_values($arr);$flip=array_combine($values,$keys);var_dump($flip);?>
输出结果:
如果有多个相同的键值,处理方式和 array_flip() 函数相似,将最后一个键名作为它的值,所有其他的都丢失了。
<?phpheader("content-type:text/html;charset=utf-8");$arr = array('a', 'b', '1', 2, 3,'1');var_dump($arr);//获取全部键名$keys=array_keys($arr);//获取全部键值$values=array_values($arr);$flip=array_combine($values,$keys);var_dump($flip);?>
输出结果:
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
最后给大家推荐一个php数组的免费视频教程:php函数之array数组函数视频讲解,快来学习吧!
以上就是php数组学习之怎么将键名key和值的位置进行互换的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product