Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算键为数字的数组元素_Php_Arrays - Fatal编程技术网

Php 计算键为数字的数组元素

Php 计算键为数字的数组元素,php,arrays,Php,Arrays,我有一个非常奇怪的数组: Array ( [title] => title [weight] => 0 [0] => Text1 [1] => Text2 [additional] => Info } 如何计算键为数字的数组元素(仅限)?应该非常简单: $i = 0; foreach ($arr as $k => $v) { if (is_numeric($k)) $i++; } 编辑 在PHP版本5

我有一个非常奇怪的数组:

Array
(
   [title] => title
   [weight] => 0
   [0] => Text1
   [1] => Text2
   [additional] => Info
}

如何计算键为数字的数组元素(仅限)?

应该非常简单:

$i = 0;
foreach  ($arr as $k => $v) {
    if (is_numeric($k))
        $i++;
}
编辑

在PHP版本5.6.0中,您可以使用

$keyCount = count(
    array_filter($data, 'is_numeric', ARRAY_FILTER_USE_KEY)
);

我想任何解决方案都需要loop@Randy使用循环有什么问题?没有循环就没有机会了?嗯,必须分析每个关键点,所以必须使用循环。即使有一个核心php函数,它仍然需要在两个答案之间进行速度测试:-)@Dagon-然后在两个答案之间运行速度测试,我不知道这两个答案中哪一个更快,我甚至不敢相信这个解决方案是如何工作得如此出色。非常感谢你!非常好的解决方案!很明显,我想让其他人来做这件事:-)我在3倍大小的阵列上运行了一个快速工作台,foreach仍然快了20%;此外,该解决方案在内存方面也不友好。
$keyCount = count(
    array_filter($data, 'is_numeric', ARRAY_FILTER_USE_KEY)
);