【php】php实现数组反转
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实现数组反转的更多相关文章
- js数组反转
var _li = test.getElementsByTagName("li"), arrayObj = [].slice.apply(_li),//_li用apply调用sli ...
- golang 数组反转
我做hackerearth上题目记录,具体的题目描述是这样的: Given the size and the elements of array A, print all the elements i ...
- Java-Runoob-高级教程-实例-数组:04. Java 实例 – 数组反转
ylbtech-Java-Runoob-高级教程-实例-数组:04. Java 实例 – 数组反转 1.返回顶部 1. Java 实例 - 数组反转 Java 实例 以下实例中我们使用 Collec ...
- 数据结构中数组反转与STL库Algorithm中的reverse
数组是个基本的线性数据结构,其实是内存中的一个块,我们可以通过c++的new来分配一个数组 int* a= new int[5]; 然后填数组的每个元素 a[0]=1; a[1]=2; a[2]=6; ...
- Java数组反转
public static void reverseArr(int[] arr) { /* 循环中定义变量min=0最小索引 max=arr.length‐1最大索引 min++,max‐‐ */ f ...
- C#数组反转
static void Main(string[] arr) { string[] names = { "老杨1", "老李2", "老王3" ...
- PHP 数组反转(值有重复)
public function indexssss() { $a=[ 'Input.txt' => 'Randy', 'Code.py' => 'Stan', 'Output.txt' = ...
- php数组合并,反转,去重,添加元素等;
//参数默认值//function abc($a,$b,$c = 0){// echo $a,$b,$c;//}//abc(1,3);//结果等于130://echo "<br> ...
- Java_基础篇(数组的反转)
数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换 ...
随机推荐
- Mixing x86 with x64 code (混合编写x86和x64代码)
几个月前我小小的研究了在WOW64下的32位进程中运行native x64代码. 第二个设想是在64位进程下运行x86代码.它们都是可以的,如我google的一样, 已经有人在使用这两种方法了: ht ...
- 微信小程序开发的基本流程
微信小程序开发的基本流程 一,微信小程序简介 1,微信小程序简称小程序,张小龙在微信公开课 Pro 上发布的小程序正式上线,时间是2017年1月9日. 2,微信小程序这个词可以分解为“微信”和“小程序 ...
- Windows10 等 administrator 打开IE 或者edge的方法
gpedit.msc 组策略处理即可
- Setting property 'source' to 'org.eclipse.jst.jee.server:hczm' did not find a matching property
- python 列表、元组、字典
一.列表 [ ] 如下的列子都可以成为列表,c=[1,2,3,4,5,6],d=["abc", "张三",“李四”],e=[1,2,3,"abc&qu ...
- Python实现百度贴吧自动顶贴机
开发这款小工具,我们需要做一些准备: url.txt:多个需要顶起的帖子地址. reply:多条随机回复的内容. selenium:浏览器自动化测试框架 首先,我们先使用pip完成selenium的安 ...
- python数学第四天【古典概型】
- APP test
在讲APP测试之前,先讲一下,目前APP的操作系统以及APP相关基础知识. 一.APP基础知识 1.操作系统# 现在移动端的操作系统主流的分为两种:(1)安卓系统 (2)IOS系统. 2.安卓系统# ...
- Delphi之TComponent类
TComponent类 TComponent类直接由TPersistent派生.TComponent的独特特征是它的属性能够在设计期间通过ObjectInspector来控制,能够拥有其他组件.非可视 ...
- thinkphp5 实现搜索分页能下一页保留搜索条件
正常情况下: 搜索后分页了,点击第二页,进入页面之前的搜索条件没有了. 如代码 $keywords=$this->request->param('keywords'); $this-> ...