已定义索引上的PHP数组切片

时间:2015-08-03 23:36:00

标签: php arrays

我想在每个函数调用的某些索引之后创建我的自定义数组切片,我已经定义了数组索引的上限和下限,这样从开始限制到结束限制,我想在每个函数上切片我的数组呼叫。我正在使用PHP并尝试在每次调用时获取下一个数组切片。

我通过展示我的功能来解释它,

function mycustomslicing($startingLimit = 0, $endingLimit = 10){

        if ($startingLimit > 0)
            $startingLimit = $startingLimit*$endingLimit;

 for ($i=0; $i < $endingLimit ; $i++) { 
                $arr2[]  = $arr1[$startingLimit+$i];
            }
}

调用我的函数:

mycustomslicing(0, 10)
mycustomslicing(11, 20)
mycustomslicing(21,30)

我的结果:

我的第一次迭代很好但是之后,它显示了索引偏移警告。

我想要的结果:

关于mycustomslicing(0,10)电话:

$arr2 will be, all values from $arr1 from index 0 to 10.

关于mycustomslicing(11,20)的电话:

$arr2 will be, all values from $arr1 from index 11 to 20.

关于mycustomslicing(21,30)的电话:

$arr2 will be, all values from $arr1 from index 21 to 30.

1 个答案:

答案 0 :(得分:2)

只需使用内置的array_slice功能即可。它需要一个开始和长度,因此您可以从结束限制中减去起始限制。您还需要将数组作为参数传递给函数。

function mycustomslicing($arr1, $start, $end) {
    return array_slice($arr1, $start, $end - $start);
}

您将其用作:

$arr2 = mycustomslicing($arr1, 0, 10);
$arr2 = mycustomslicing($arr1, 11, 20);

等等。

您收到错误是因为您将开头乘以结尾,这使得起始限制太高了。