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

青灯夜游
发布: 2021-08-25 14:34:34
原创
3614人浏览过

在之前的文章《php数组学习之二维数组怎么进行排序(2种方法)》中,我们了解了根据某一字段进行二维数组排序的2种方法,有需要的朋友可以学习了解一下~

→相关推荐:PHP数组学习系列大汇总(持续更新~)

本文的主题是“将键名key和值的位置进行互换”,简单来说就是交换数组中的键名和键值。

而这一操作,PHP中有一个内置函数就是这个功能,那就是 array_flip($array) 函数。

我们通过下面的例子来具体看看

立即学习PHP免费学习笔记(深入)”;

<?php
$arr = array('a', 'b', '1', 2, 3);
var_dump($arr);
var_dump(array_flip($arr));
?>
登录后复制

输出结果:

2.png

说明:$array数组中的值需要能够作为合法的键名(例如 int 或者 string),如果值的类型不对将发出一个警告,并且有问题的键值对将不会反转。

如果同一个键值出现了多次,那么最后一个键名将作为它的值,所有其他的都丢失了。

<?php
$arr = array("a" => 1, "b" => 1, "c" => 2);
var_dump($arr);
var_dump(array_flip($arr));
?>
登录后复制

输出结果:

3.png

可以看出:利用array_flip()可以非常快速的交换键名和键值。那么如果不使用array_flip()函数,要怎么交换键名和键值呢?下面给大家介绍一下。

思路:

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人
  • 首先使用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);
?>
登录后复制

输出结果:

4.png

如果有多个相同的键值,处理方式和 array_flip() 函数相似,将最后一个键名作为它的值,所有其他的都丢失了。

<?php
header("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);
?>
登录后复制

输出结果:

5.png

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

以上就是PHP数组学习之怎么将键名key和值的位置进行互换的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号