2010-01-18 4 views

Répondre

-1

Non. Écrivez votre propre! La récursivité est amusante! = D

+0

Je suis d'accord sur la récursivité. : p – Pikrass

0

C'est à peu près ce que la fonction array_count_values est pour, mais si vous utilisez un tableau multidimensionnel que vous laissez entendre, si serait assez trivial de mettre quelque chose ensemble en utilisant la fonction array_walk_recursive. Maintenant oui

+2

Mais cela compte les valeurs pas les clés. –

+0

@Felix - C'est un point extrêmement valable. Ma faute. :-) –

+0

Je veux dire, en théorie, vous pouvez l'utiliser avec 'array_keys' mais comme toutes les clés se produit qu'une seule fois ... ;-D –

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

un retour trop – stef

0

Cela pourrait vous aider.

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

Pas tout à fait correct,' autre if' ne devrait être que si ' '. Autrement '$ foo [$ key] = array()' ne serait pas pris en compte. ? –

+0

Et pourquoi vous ajoutez la valeur d'un élément du tableau au compteur ... –

+0

@Felix ouais corect des thats mon mauvais: – streetparade

Questions connexes