php - array_slice 错误地计算所有元素
问题描述
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
。
解决方案
的第三个参数array_slice()
是切片的长度,不是终点...
数组 array_slice ( 数组 $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] )
所以应该...
$arr = array_slice($arrx, $offset, 12);
另外作为旁注,请尽量避免使用global
和传递参数。它使测试变得更加容易,也意味着您可以更直接地指示数据在何处传递。
推荐阅读
- node.js - 从不同的集合中获取数据,在猫鼬中没有任何关系
- python-3.x - 使用 fastai 库执行用于图像识别的 cnn 模型时出现运行时错误
- github - 如何允许 GitHub 贡献者添加更多贡献者?
- c - C:从 char 数组打印会产生错误的字符
- python - 如何使用 boto3 从 S3 将数据写入 RDS
- google-analytics - 如何在谷歌 BigQuery 中复制谷歌分析段?
- linux - 如何在ansible中获得一个随机未使用的端口
- firebase - Firebase Firestore 中的管理员通知
- c - 有效签证:4222222222222 输出无效
- javascript - 如何获得 Express JS substr?