在这篇《PHP算法练习八:判断给定的三个数是否能构成直角三角形》中给大家介绍了怎么判断给定的三个数是否能构成直角三角形,今天继续开始算法练习系列内容~

本文的中心的问题“编写一个PHP程序,从给定的整数数组中创建新数组,将所有偶数移到所有奇数之前”。

先给大家介绍下偶数和奇数的概念:

  • 偶数是可以被2所整除的整数。正偶数也被称双数。如果某数是2的倍数,那么它就是偶数,可以表示为2n;如果不是,它就是奇数,可表示为2n+1(n为整数),即奇数除以二的余数是一。

  • 奇数(odd)就是指不能被2整除的整数 ,数学表达形式为:2k+1, 奇数还可以分为正奇数和负奇数。

下面就开始正题~

PHP代码如下:

<?php
function test($numbers)
{
    $index = 0;
    for ($i = 0; $i < sizeof($numbers); $i++)
    {
        if ($numbers[$i] % 2 == 0)
        {
            $temp = $numbers[$index];
            $numbers[$index] = $numbers[$i];
            $numbers[$i] = $temp;
            $index++;
        }
    }
    return $numbers;
}

$result = test([1, 2, 5, 3, 5, 4, 6, 9, 11] );
echo "新数组: " . implode(',', $result);

输出结果是:

新数组: 2,4,6,3,5,1,5,9,11

可以看到偶数都在奇数前面。

我们给的原始数组内容是[1, 2, 5, 3, 5, 4, 6, 9, 11],然后通过计算“$numbers[$i] % 2”结果是否等于0,也是判断奇数偶数的关键公式,然后判断出奇数偶数,再进行调换位置就行了。

至于新数组则用implode()函数把数组元素组合为字符串输出即可。

implode()函数的作用就是返回由数组元素组合成的字符串。

最后给大家

PHP算法练习九:将全部偶数转到全部奇数之前