写点什么

【web 开发基础】如何调换数组中的键和值(53)

作者:迷彩
  • 2022-12-30
    广东
  • 本文字数:908 字

    阅读完需:约 3 分钟

前言

在后端接口返回的数据中,并不是每次返回的数据都是符合我们前端展示的格式的,所以对数据的处理以及转换就显得尤为重要,特别是很多时候我们需要对数据重新整理,我们需要把数组中的元素值作为新数组的键值来使用。比如,我们现在从接口获取到两个数组,一个数组的值刚好就是另一个数组中的键,而键值刚好和另一个数组的值是一类数据,刚好相反。这个时候我们就需要使用 array_flip()调换数组中的键值和元素值。接着我们通过具体的例子来了解 array_flip()的具体用法。

调换数组中的键和值

array_flip()的语法格式如下:

array_flip(目标数组)
复制代码

接下来继续看看实例:把数组中的名字和年龄调换过来,然后输出

<?php$array = array('张三'=>28,'鲁班'=>25,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21);print_r(array_flip($array));

?>
复制代码

执行结果如下:


下面再接着看看合并的例子:

<?php$array = array('张三'=>28,'鲁班'=>25,'李四'=>25,'王五'=>18,'李白'=>19,'杜甫'=>20,'白居易'=>21);
$array2 = array(28=>'刘备',25=>'关羽',21=>'张飞');$after_flip = array_flip($array);print_r($after_flip);
$arr = array_merge($array,$array2);$arr2 = array_merge($array,array_flip($array2));print_r($arr);print_r($arr2);
?>
复制代码

执行结果如下:

从执行结果可以看出,调换键值和元素值之后再合并是不是更加和谐一点

总结

上面例子中,其中数组 $array 为一个联合索引数组,通过 array_flip ($array)调换联合索引数组的键值和元素值,并且加以返回。但有意思的是,$array 是一个拥有重复元素值的数组,且这两个重复元素值的“键名”是不同的。array_flip ()逐个调换每个数组元素的键值和元素值。原来的元素值变为键名以后,就有两个原先为键名、现在调换为元素值的数值与之对应。调换后,array_flip ()等于对原来的元素值(现在的键名)赋值。当 array_flip ()再次调换到原来相同的、现在为键名的值时,相当于对同一个键名再次赋值,则头一个调换时的赋值将会被覆盖,显示的是第二次的赋值。

发布于: 刚刚阅读数: 4
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020-06-18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【web 开发基础】如何调换数组中的键和值(53)_数组合并_迷彩_InfoQ写作社区