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)
);