2010-09-15 59 views
0

如何在给定元素第一次出现之后对数组元素进行计数?在给定元素之后计算数组元素

例如

$a = array('a', 'c','xxd','ok','next1','next2'); 
echo occurences_after($a, 'ok'); 

应打印 “2”

+8

什么又是这个问题吗? – NullUserException 2010-09-15 15:18:25

+0

也许你应该在试图问一个编程问题之前在english.stackexchange.com上发帖;-) – 2010-09-15 15:19:59

+0

为什么下一个'ok'的数字是2? – recursive 2010-09-15 15:20:04

回答

3

如果您要找的元素的特定元素的第一次出现后的数字:

function occurences_after($array, $element) 
{ 
    if (($pos = array_search($element, $array)) === false) 
    return false; 
    else 
    return count($array) - $pos - 1; 
} 
+1

一个勇敢的,可能的启发,解密尝试=)+1 – 2010-09-15 15:25:13

+0

这将是我对这个问题的含义的猜测 – 2010-09-15 15:26:55

0

如果我正确地读你的问题,顺便数出数组中匹配一个特定元素的元素数量是环在数组上并单独检查每个元素是否匹配。这听起来像功课,所以我不会为你写代码,因为它很简单,但它应该让你朝着正确的方向前进。

因此重申:

  • 遍历每个元素的数组
  • 检查每个元素,看它是否 符合要求
  • 如果这样做, 增量的项目数发现
0

我不确定你的意思。 如果您想计算数组$ A中元素的数量。

您可以使用count($A)

如果要算值:

 
print_r(array_count_values($A)); 

输出将是:

 
Array 
(
    [a] => 1 
    [c] => 1 
    [xxd] => 1 
    [ok] => 1 
    [next1] => 1 
    [next2] => 1 
)