2009-08-05 14 views

Antwort

7

so einfach, PHP-Funktion haben

$a=array("Cat","Dog","Horse","Dog"); 
    print_r(array_count_values($a)); 

Die Ausgabe des obigen Codes wird:

Array ([Cat] => 1 [Dog] => 2 [Horse] => 1) 
+0

omg. haben sie auch eine Funktion !? – mpen

+0

Ja, das tun sie. =) –

1

löschen Duplikate von der Registerkarte le verwenden array_unique() Funktion.

+0

dank viel, wusste ich, diese Funktion, aber es zählt nicht das Auftreten? – ahmed

+0

Ich denke, dass Sie diese manuell zählen müssen. – RaYell

0

So etwas wie diese vielleicht (ungetestet)

$freq = array(); 
foreach($arr as $val) { 
    $freq[$val] = 0; 
} 
foreach($arr as $val) { 
    $freq[$val]++; 
} 
+0

Eigentlich ist Andrews Lösung besser. Sein Kopf funktioniert nicht so schnell: '( – mpen

+0

Scratch das. Haim's sol'n pwns. Array_count_values ​​ – mpen

5

Sie array_count_values() wollen, gefolgt von einem array_unique().

$arr = array('foo','bar','foo'); 
print_r(array_count_values($arr)); 

$arr = array_unique($arr); 
print_r($arr); 

gibt:

Array ([foo] => 2 [bar] => 1) 
Array ([0] => foo [1] => bar) 
+0

warum brauchen array_unique? Das array bereits eindeutig nach array_count_values ​​ –

+0

True. Ich hatte es in meinem Kopf, dass Er müsste die Zählungen getrennt von den eindeutigen Werten verwenden, aber Sie haben recht, 'array_count_values ​​()' gibt Ihnen eine eindeutige Schlüsselauflistung, während array_unique Ihnen eine eindeutige Werteliste bietet, die Ahmeds wahrscheinlich nur benötigt 'array_count_values ​​()'. – zombat

Verwandte Themen