本文来自GitHub开源项目点我跳转30秒的PHP代码片段精选的有用PHP片段集合,您可以在30秒或更短的时间内理解这些片段。数学函数average返回两个或多个数字的平均值。function average(…$items){ $count = count($items); return $count === 0 ? 0 : array_sum($items) / $count;}Examplesaverage(1, 2, 3); // 2factorial(阶乘)计算一个数的阶乘。function factorial($n){ if ($n <= 1) { return 1; } return $n * factorial($n - 1);}Examplesfactorial(6); // 720fibonacci(斐波那契数列)生成包含斐波那契数列的数组,直到第n项。function fibonacci($n){ $sequence = [0, 1]; for ($i = 2; $i < $n; $i++) { $sequence[$i] = $sequence[$i-1] + $sequence[$i-2]; } return $sequence;}Examplesfibonacci(6); // [0, 1, 1, 2, 3, 5]GCD(最大公约数)计算两个或多个数之间的最大公约数。function gcd(…$numbers){ if (count($numbers) > 2) { return array_reduce($numbers, ‘gcd’); } $r = $numbers[0] % $numbers[1]; return $r === 0 ? abs($numbers[1]) : gcd($numbers[1], $r);}Examplesgcd(8, 36); // 4gcd(12, 8, 32); // 4isEven如果给定的数字是偶数,则返回true,否则返回false。function isEven($number){ return ($number % 2) === 0;}ExamplesisEven(4); // trueisPrime检查提供的整数是否是素数。function isPrime($number){ $boundary = floor(sqrt($number)); for ($i = 2; $i <= $boundary; $i++) { if ($number % $i === 0) { return false; } } return $number >= 2;}ExamplesisPrime(3); // truelcm返回两个或多个数字的最小公倍数。function lcm(…$numbers){ $ans = $numbers[0]; for ($i = 1, $max = count($numbers); $i < $max; $i++) { $ans = (($numbers[$i] * $ans) / gcd($numbers[$i], $ans)); } return $ans;}Exampleslcm(12, 7); // 84lcm(1, 3, 4, 5); // 60median返回数字数组的中间值。function median($numbers){ sort($numbers); $totalNumbers = count($numbers); $mid = floor($totalNumbers / 2); return ($totalNumbers % 2) === 0 ? ($numbers[$mid - 1] + $numbers[$mid]) / 2 : $numbers[$mid];}Examplesmedian([1, 3, 3, 6, 7, 8, 9]); // 6median([1, 2, 3, 6, 7, 9]); // 4.5maxN从提供的数组中返回最大的数的个数。function maxN($numbers){ $maxValue = max($numbers); $maxValueArray = array_filter($numbers, function ($value) use ($maxValue) { return $maxValue === $value; }); return count($maxValueArray);}ExamplesmaxN([1, 2, 3, 4, 5, 5]); // 2maxN([1, 2, 3, 4, 5]); // 1minN从提供的数组中返回最小的数的个数。function minN($numbers){ $minValue = min($numbers); $minValueArray = array_filter($numbers, function ($value) use ($minValue) { return $minValue === $value; }); return count($minValueArray);}ExamplesminN([1, 1, 2, 3, 4, 5, 5]); // 2minN([1, 2, 3, 4, 5]); // 1approximatelyEqual(约等于)检查两个数字是否近似相等。使用abs()将两个值的绝对值与进行比较。省略第三个参数,以便使用默认值0.001。function approximatelyEqual($number1, $number2, $epsilon = 0.001){ return abs($number1 - $number2) < $epsilon;}ExamplesapproximatelyEqual(10.0, 10.00001); // trueapproximatelyEqual(10.0, 10.01); // falseclampNumber将num放在边界值a和b指定的包含范围内。如果num在该范围内,则返回num。否则,返回该范围内最近的数字。function clampNumber($num, $a, $b){ return max(min($num, max($a, $b)), min($a, $b));}ExamplesclampNumber(2, 3, 5); // 3clampNumber(1, -1, -5); // -1相关文章:30秒的PHP代码片段(1)数组 - Array