PHP练习-反转数组

2020-09-14 12:20 By "Powerless" 2680 0 1

【方法一】

思路分析

新建一个数组b,从后往前遍历数组a,把遍历到的元素加到数组b的后面。

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;
}
$arr = [3,8,1,5,2,6,8,3,0];
print_r(reverse($arr));


【方法二】

思路分析

第一项和最后一项互换;第二项与倒数第二项互换;第三项与倒数第三项互换;以此类推,直到换到中间。

function reverse($arr)
{
    $n = count($arr);
    for ($i = 0; $i < $n/2; ++$i) {
        $temp = $arr[$n-$i-1];
        $arr[$n-$i-1] = $arr[$i];
        $arr[$i] = $temp;
    }
    return $arr;
}
$arr = [3,8,1,5,2,6,8,3,0];
print_r(reverse($arr));


输出结果

Array

(

    [0] => 0

    [1] => 3

    [2] => 8

    [3] => 6

    [4] => 2

    [5] => 5

    [6] => 1

    [7] => 8

    [8] => 3

)

评 论

View in WeChat

Others Discussion

  • MySQL中的行级锁,表级锁,页级锁
    Posted on 2018-08-25 11:00
  • MySQL分组
    Posted on 2019-11-18 14:00
  • PHP练习-爬楼梯问题
    Posted on 2020-08-14 23:56
  • PHP8.1 性能基准测试
    Posted on 2022-10-08 17:40
  • MySQL事务介绍
    Posted on 2019-06-05 18:14
  • 必学十大经典排序算法,看这篇就够了
    Posted on 2019-11-18 16:30
  • 巧用CAS解决数据一致性问题
    Posted on 2019-03-07 11:55
  • PHP练习-无重复字符的最长子串
    Posted on 2020-09-17 18:03