2010-01-18 51 views

回答

-1

没有。写你自己的!递归很有趣! = d

+0

我同意递归。 :p – Pikrass 2010-01-18 21:06:55

0

这是相当多的 array_count_values的功能是什么,但 如果您使用的是多维数组,你暗示,如果将相当琐碎使用array_walk_recursive功能来把东西在一起。

+2

但是这个计数值不是键。 – 2010-01-18 21:07:24

+0

@Felix - 这是一个非常有效的观点。我的错。 :-) – 2010-01-18 21:08:45

+0

我的意思是理论上你可以和'array_keys'一起使用它,但是每个键只能出现一次...; -D – 2010-01-18 21:12:00

5

现在是。 :)

function count_key($array, $key) { 
    $count = 0; 
    foreach($array as $k => $val) { 
     if($k == $key) 
      $count++; 
     if(is_array($val)) 
     $count += count_key($val, $key); 
    } 
    return $count; 
} 
+0

返回太多 – stef 2010-01-18 21:10:20

0

这可以帮助你。

function recursiveSum($array, $keyToSearch) { 
    $total = 0; 
    foreach($array as $key => $value) { 
     if(is_array($value)) { 
      $total += recursiveSum($value, $keyToSearch); 
     } 
     else if($key == $keyToSearch) { 
      $total += $value; 
     } 
    } 
    return $total; 
} 

$total = recursiveSum($array, "test"); 
+0

不完全正确,else if只应该if '。否则'$ foo [$ key] = array()'不会被考虑在内。 – 2010-01-18 21:10:16

+0

为什么添加数组元素的值到计数器? – 2010-01-18 21:17:14

+0

@Felix是啊,这是corect我的坏: – streetparade 2010-01-18 21:19:54