array_slice错误地计算所有元素

时间:2018-08-07 06:23:55

标签: php

function givemeart($offset) {
    global $db;
    global $arrx; // array
    $end = $offset + 12;
    $arr = array_slice($arrx, $offset, $end);
    echo 'offset - ' . $offset . '<br>';
    echo 'end - ' . $end . '<br>';
    echo 'count - ' . count($arr) . '<br>';
}

结果:

offset - 24   
end - 36   
count - 36

count应该是12吗?

因为从24 (offset)36 (end)12

1 个答案:

答案 0 :(得分:0)

array_slice()的第三个参数是切片的长度,而不是终点...

  

array array_slice(array $ array,int $ offset [,int $ length = NULL   [,bool $ preserve_keys = FALSE]])

应该是...

$arr = array_slice($arrx, $offset, 12);

此外,请尝试避免使用global并尽可能传递参数。它使测试变得容易得多,并且还意味着您可以更直接地指示数据在何处传递。