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

举报
迷彩 发表于 2023/07/18 15:09:49 2023/07/18
【摘要】 前言在后端接口返回的数据中,并不是每次返回的数据都是符合我们前端展示的格式的,所以对数据的处理以及转换就显得尤为重要,特别是很多时候我们需要对数据重新整理,我们需要把数组中的元素值作为新数组的键值来使用。比如,我们现在从接口获取到两个数组,一个数组的值刚好就是另一个数组中的键,而键值刚好和另一个数组的值是一类数据,刚好相反。这个时候我们就需要使用array_flip()调换数组中的键值和元素...

前言

在后端接口返回的数据中,并不是每次返回的数据都是符合我们前端展示的格式的,所以对数据的处理以及转换就显得尤为重要,特别是很多时候我们需要对数据重新整理,我们需要把数组中的元素值作为新数组的键值来使用。比如,我们现在从接口获取到两个数组,一个数组的值刚好就是另一个数组中的键,而键值刚好和另一个数组的值是一类数据,刚好相反。这个时候我们就需要使用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 ()再次调换到原来相同的、现在为键名的值时,相当于对同一个键名再次赋值,则头一个调换时的赋值将会被覆盖,显示的是第二次的赋值。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。