php反转数字_【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

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值