• 技术文章 >后端开发 >PHP问题

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

    青灯夜游青灯夜游2021-08-26 19:20:51原创237
    在之前的文章《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));
    ?>

    输出结果:

    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()函数,要怎么交换键名和键值呢?下面给大家介绍一下。

    思路:

    实现代码:

    <?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中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:PHP 数组 交换键和值
    上一篇:PHP删除关联数组中键值的两种方法 下一篇:PHP数学函数实践五:获取随机浮点数
    线上培训班

    相关文章推荐

    • PHP数组学习之更改键/值的大写或小写• PHP数组学习之返回给定两数间的全部公因数和最大公因数• PHP数组学习之使用冒泡算法对元素进行升序排序!• PHP数组学习之比较数组元素,获取第一大和第二大值• PHP数组学习之巧用函数提取最大值和第二大值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网