php里面有个函数可以反转数组,工作中也经常用到,非常方便。今天来自己实现这样的功能。

$arr = [2,5,6,1,8,16,12];

function reverse($arr){

$left = 0;

$right = count($arr) -1;

$temp = [];

while ($left <= $right){

$temp[$left] = $arr[$right];

$temp[$right] = $arr[$left];

$left++;

$right--;

}

ksort($temp);

return $temp;

}

效果

Array

(

[0] => 12

[1] => 16

[2] => 8

[4] => 6

[5] => 5

[6] => 2

)

不过这个函数只能处理一维数组。在实现一个可以处理多维的。

$arr = [2,[6,3,9],1,[5,2,1,[10,8,7]],5,0];

function reverse_arr($arr){

$index = 0;

$reverse_array = [];

foreach ($arr as $sub_arr){

if(is_array($sub_arr)){

$sub_arr = reverse($sub_arr);

$arr_ = reverse_arr($sub_arr);

$reverse_array[$index] = $arr_;

}else{

$reverse_array[$index] = $sub_arr;

}

$index++;

}

return $reverse_array;

}

print_r(reverse(reverse_arr($arr)));

输出结果

Array

(

[0] => 0

[1] => 5

[2] => Array

(

[0] => Array

(

[0] => 7

[1] => 8

[2] => 10

)

[1] => 1

[2] => 2

[3] => 5

)

[3] => 1

[4] => Array

(

[0] => 9

[1] => 3

[2] => 6

)

[5] => 2

)

上面都是数字索引数组,不能处理关联数组,接着来个可以处理关联数组的

$arr = ['a'=>'aa','b'=>'bb','c'=>'cc','d'=>'dd','e'=>'ee'];

function reverse($arr){

$temp = [];

end($arr);

while (($value = current($arr)) != null){

$temp[key($arr)] = $value;

prev($arr);

}

return $temp;

}

print_r(reverse($arr));

结果

Array

(

[e] => ee

[d] => dd

[c] => cc

[b] => bb

[a] => aa

)

php反转数字_【PHP】php实现数组反转相关推荐

  1. 8. 返回数组里出现次数最多的数字_剑指offer 数组中出现次数超过一半的数字

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

  2. 单相电机正反转接线图_关于单相电机正反转的详细接线图

    原标题:关于单相电机正反转的详细接线图 免责声明 部分文章精选于网络,版权归原作者所有,我们注重分享.若未能找到作者和原始出处,还望谅解,如原作者看到,欢迎联系小编(可发邮至314377032@qq. ...

  3. 编程小练习:最大公约数,字符串反序输出,全排列,不用加减法求和,字符串内容反序,字符串中最长数字串,数组是否递增,数组反转,链表反转,翻转单词顺序

    最大公约数 --- 递归.非递归 #include <stdio.h>int gcd(int a, int b); int gcd_recursive(int a, int b);int ...

  4. python查找数列中重复数字_在数组中找出重复的数字(异或法)

    购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...

  5. 【JavaScript系列】JS基础语法_从变量到数组一网打尽_有教程有实战

    [JavaScript系列]基础语法_从变量到数组一网打尽_有教程有实战 JavaScript基础语法目录 基础语法 延迟和异步脚本 变量 数据类型 数据类型简介 简单数据类型与复杂数据类型 栈和堆 ...

  6. java 数组 算法_常见算法总结 - 数组篇

    1.给定一个数值在1-100的整数数组,请找到其中缺少的数字. 找到丢失的数字 利用byte数组的1或0标记该数字是否被删除,例如byte数组下标为0的数值为1的话,代表数字1存在 public st ...

  7. 像素,视频制式,数字_模拟信号摄像头

    致谢:像素,视频制式,数字_模拟信号摄像头 1,PAL,NTSC,还有SECAM,这是全球现行的三种模拟技术彩色电视的制式. NTSC(National Television System Commi ...

  8. 典型的Top K算法_找出一个数组里面前K个最大数

    原文 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入 ...

  9. 小练习----春夏秋冬,回文数,不死神兔,去掉最高最低求和,数组反转,简单加密,switch语句

    春夏秋冬 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); if (a == 1 || a == 2 || a == 12) {Sy ...

最新文章

  1. MOXA的Nport5600初始密码
  2. OWC组件生成柱状图
  3. NASA告诉你四翼飞行器的飞行原理
  4. loadrunner 参数化
  5. model类中enum类型与数据库字段的映射
  6. Spring Data JPA教程,第一部分: Configuration(翻译)
  7. 优秀网站设计:打造有吸引力的网站(原书第3版)
  8. 如何正确获取安卓内置SD卡的路径
  9. 大数据:数据大合集,你想要的这里或许会有
  10. php检查gd库是否开启,检查服务器是否开启GD库
  11. 松本行弘为什么开发Ruby
  12. K均值聚类算法(K-Means)
  13. 2.2、云计算FusionCompute计算虚拟化
  14. Android 获取Usb设备类型
  15. 大数据是什么,大数据的特点主要有哪些,应该怎么运用?
  16. c语言处理nc程序,NC程序的语言问题
  17. Hadoop3.2.0 HDFS DataNode管理员指南
  18. MongoDB的多表关联查询
  19. sql -803 DB2修改主键起始值
  20. 计算机应用基础主要按键,计算机应用基础教案第一讲:键盘与鼠标(中职教育)...

热门文章

  1. .NET Core AWS S3云存储
  2. 一个.NET Core下的开源插件框架Pluginfactory
  3. 高并发项目Java是标配?.NET Core要将它拉下“神坛”!
  4. Sql Server之旅——第十二站 对锁的初步认识
  5. 链路追踪在ERP系统中的应用实践
  6. 优秀的开发者从命名开始
  7. .netcore 开发的 iNeuOS 物联网平台部署在 Ubuntu 操作系统,无缝跨平台
  8. .NET Conf 2019 大会上发布.NET Core 3.0
  9. 淘宝商品数据库设计的一些经验
  10. dotNET Core WebAPI 统一处理(返回值、参数验证、异常)