PHP中是否有一个函数可以从数组的特定索引开始计数?
示例:
$array = array(1, 2, 3, 4, 'string', 5, 6, 7);
var_dump(count($array)); // 8 items
功能与我需要的相似:
$array = array(1, 2, 3, 4, 'string', 5, 6, 7);
var_dump(countFromIndex($array, 2)); // 6 items (started from 3)
答案 0 :(得分:1)
不,你需要写一个。 最简单的(不是最好的,就是我能从头顶拉出来的)方法就像是
function countFrom($array, $indexFrom) {
$counter = 0;
$start = false;
foreach ($array as $k=>$v) {
if ($k == $indexFrom) {
$start = true;
}
if ($start) {
$counter ++;
}
}
return $counter;
}
或者,可能记忆力较低:
function countFrom($array, $indexFrom) {
$start = false;
$counter = 0; // experiment to see if this should be 0 or 1
foreach ($array as $k=>$v) {
if ($k == $indexFrom) {
$new = array_splice($array, $counter);
return count($new);
}
$counter ++;
}
答案 1 :(得分:0)
如果您尝试从索引编号2开始获取项目数,则只需使用count($array) - 2
?
答案 2 :(得分:0)
这样的事情:
function countFromIndex($array, $index)
{
$values = array_values($array);
$count = count($values);
$search = 0;
for($i=0; $i<$count; $i++)
{
$search++;
if($values[$i] === $index) break;
}
return $count-$search;
}
$array = array(1, 2, 3, 4, 'string', 5, 6, 7);
var_dump(countFromIndex($array, 2)); // 6 items (started from 3)
var_dump(countFromIndex($array, 'string')); // 3 items (started from 5)
var_dump(countFromIndex($array, 7)); // 0 items (started from ?)
答案 3 :(得分:-1)
$total = count($array);
$count = 0;
for($i = 2; $i < $total; $i++)
{
$count++;
}
更改$i = 2
以设置起点。