概述
本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。
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数组如何反转的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是英俊小霸王为你收集整理的php数组如何反转的全部内容,希望文章能够帮你解决php数组如何反转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复