如何在 PHP 中创建系列集合


How to create series of set in PHP

我需要一个像 range 这样的函数,我将在其中传递最小值和最大值,它将返回设置的系列。

例如

createSeries(0, 50, 10, ' - '); // (min, max, interval, connector)

应该返回我以下数组

array('0 - 10', '10 - 20', '20 - 30', '30 - 40', '40 - 50');

我能做到的最好的事情是什么?

编辑:我有一个函数可以给我结果。我使用了范围和 for 循环来获得我的结果。有没有更有效的方法可以得到它?

提前感谢!

时尚的功能代码:

function createSeries($min, $max, $interval, $connector) {
    return array_map(
        function ($num) use ($interval, $connector) {
            return implode(' ', array($num, $connector, $num + $interval));
        },
        range($min, $max - $interval, $interval)
    );
}

但是,最有效的方法似乎是:

function createSeries($min, $max, $interval, $connector) {
    $series = array();
    for ($i = $min; $i < $max; $i += $interval) {
        $tail = $i + $interval;
        $series[] = "$i $connector $tail";
    }
    return $series;
}

注意:PHP 是非常慢的脚本语言。你不应该非常介意效率。

function createSeries($s, $e, $st, $d) {
    $result = array();
    for($i = $s; $i < $e; $i += $st)
       $result[] = $i . $d . ($i + $st);
    return $result;
}