2010-03-04 4 views
1

J'ai un tableau comme:Nombre total de répétition de valeur de tableau en PHP

[Organization_id] => Array 
     (
      [0] => 4 
      [1] => 4 
      [2] => 2 
      [3] => 4 
      [4] => 2 
      [5] => 4 
      [6] => 4 
      [7] => 4 
      [8] => 2 
     ) 

Maintenant, je veux juste savoir que combien de fois la vale « 4 » & « 2 » ne présente dans ce tableau-à-dire : mon résultat doit être quelque chose comme ceci:

[id_repeat] => Array 
      (
       [0] => 6 
       [1] => 3 
      ) 

où, l'emplacement 0e représentera le nombre total de répétitions de la valeur « 4 » & 1er emplacement représentera le nombre total de répétitions de la valeur « 2 ». Mais gardez à l'esprit que ces valeurs ne sont pas codées en dur, ces valeurs proviendront d'une table.

Merci d'avance.

Répondre

1

Vous pouvez faire:

$freq_array = array_count_values($Organization_id); 

$id_repeat = array(
$freq_array[4], 
$freq_array[2] 
); 
7

utilisation array_count_values():

Cette fonction:

retourne un tableau associatif des valeurs d'entrée comme clés et leur nombre en tant que valeur.

Exemple d'utilisation:

<?php 
$array = array(1, "hello", 1, "world", "hello"); 
print_r(array_count_values($array)); 
?> 

L'exemple ci-dessus sortie:

Array 
(
    [1] => 2 
    [hello] => 2 
    [world] => 1 
) 
0

Voici un extrait de code qui va créer un tableau b des fréquences de chaque élément dans l'entrée tableau a dans l'ordre de leur apparition dans a. Notez qu'il ne compte pas les valeurs null dans l'entrée. C'est en javascript car je ne suis pas bon en php.

var a = [4, 4, 2, 4, 2, 4, 3, 3, 3, 5 , 4]; 
var b = []; 
for(var i = 0; i < a.length; i++) 
{ 
    if(a[i] != null) 
    b.push(1); 
    else 
    continue; 
    for(var j = i + 1; j < a.length; j++) 
    { 
    if(a[i] == a[j]) 
    { 
     b[b.length - 1]++; 
     a[j] = null; 
    } 
    } 
} 
console.log(b.join());//5,2,3,1 
+0

Ce n'est pas PHP. –

Questions connexes