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