计算数组元素,哪些键是数字

时间:2013-02-03 21:47:21

标签: php arrays

我有一个奇怪的阵列:

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

如何计算哪些键是数字(仅)的数组元素?

2 个答案:

答案 0 :(得分:9)

$data = array(
    'title' => 'title',
    'weight' => 0,
    0 => 'Text1',
    1 => 'Text2',
    'additional' => 'Info'
);

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

var_dump($keyCount);

修改

从PHP 5.6.0版开始,您可以使用

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

答案 1 :(得分:2)

应该安静简单:

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