【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).数组的交换 ...
随机推荐
- php开发之常用验证方法
1.邮箱验证 function isEmail($email) { if (!$email) { return false; } return preg_match('/^[_\.0-9a-z-]+@ ...
- pl/sql实现打印九九乘法表
学习PL/SQL循环的时候写的,记录一下. declare v_number1 ); -- 外层循环变量 v_number2 ); -- 内层循环变量 begin .. -- 开始外层循环 loop ...
- [转帖]dd命令详解
dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...
- checkout 多选 全选(亲测有效)
<input type="button" id="btn1" value="全选"> <input type=" ...
- js实现input的赋值
input框赋值如下所示,是一个文本框的html代码,实际开发中,要涉及到将数据库中的数据取出然后放入input框中. <input id="name1" name=&quo ...
- django rest framework批量上传图片及导入字段
一.项目需求 批量上传图片,然后批量导入(使用excel)每个图片对应的属性(属性共十个,即对应十个字段,其中外键三个). 二.问题 一次可能上传成百上千张图片和对应字段,原来数据库的设计我将图片和对 ...
- Spring注解 系列之Spring常用注解总结
参考:Spring系列之Spring常用注解总结 (1) Resource 默认是byName的方式进行bean配置,@AutoWired默认是按照byType的方式进行装配bean的:(2)Comp ...
- SECCON 2014 CTF:Shuffle
很简单的一道小题 dia看一下是ELF文件 运行之: St0CFC}4cNOeE1WOS !eoCE{ CC T2hNto 是一串乱七八糟的字符 ida看一下: 很简单的逻辑 v5和v6是随机生成的两 ...
- XCTF 4th-WHCTF-2017 creakme
exe文件 运行一下 随便输一下 ps.这个曹操身边的故事挺有意思的 但是没啥卵用....... 查一下壳无壳 ida载入 发现找不到main函数 直接看start感觉逻辑乱乱的(萌新求不喷..... ...
- Python——进程通信之间数据共享
from multiprocessing import Manager,Process,Lock def main(dic,lock): lock.acquire() dic['count'] -= ...