我想在每个函数调用的某些索引之后创建我的自定义数组切片,我已经定义了数组索引的上限和下限,这样从开始限制到结束限制,我想在每个函数上切片我的数组呼叫。我正在使用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.
答案 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);
等等。
您收到错误是因为您将开头乘以结尾,这使得起始限制太高了。