Compter les sommes similaires Array

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 17:20

Bonjour à tous, j'ai trouve sur le siteduzero.com

ceci
$array = array (
	0 => "test",
	1 => "test",
	2 => "test1",
	3 => "test3",
	4 => "test",
	5 => "test4");
	
foreach ($array as $value) 
{
    $nombre[$value]++;
}
foreach ($nombre as $cle => $value) 
{
    echo 'nombre de '.$cle.' égal '.$value.'<br/>';
}
Il fonctionne mais je veux le faire du sens contraire


J'ai essayé ceci
$array = array('test' => 'haricot', 'test' => 'bonjo');

	
foreach ($array as $key => $value) 
{
    $nombre[$key]++;
}
foreach ($nombre as $cle => $value) 
{
    echo 'nombre de '.$cle.' égal '.$value.'<br/>';
}
Pourtant je tombe tout le temps sur la valeur de 1 !

Comment m'y prendre ?

Eléphant du PHP | 267 Messages

13 avr. 2012, 18:18

salut,

tu ne peux pas définir un tableau comme ça :
$array = array('test' => 'haricot', 'test' => 'bonjo');
car les clefs d'un tableau doivent être distinctes
il ne reste que la dernière valeur c'est a dire que si tu fais un :
var_dump($array);
ça affichera :
array(1) { ["test"]=> string(5) "bonjo" }
'haricot' a été écrasé par 'bonjo'

@+
dix2

Eléphant du PHP | 267 Messages

13 avr. 2012, 18:21

de plus, ce code :
$array = array (
        0 => "test",
        1 => "test",
        2 => "test1",
        3 => "test3",
        4 => "test",
        5 => "test4");
       
foreach ($array as $value)
{
    $nombre[$value]++;
}
foreach ($nombre as $cle => $value)
{
    echo 'nombre de '.$cle.' égal '.$value.'<br/>';
}
correspond à la fonction array_count_values ()

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 18:55

de plus, ce code :
$array = array (
        0 => "test",
        1 => "test",
        2 => "test1",
        3 => "test3",
        4 => "test",
        5 => "test4");
       
foreach ($array as $value)
{
    $nombre[$value]++;
}
foreach ($nombre as $cle => $value)
{
    echo 'nombre de '.$cle.' égal '.$value.'<br/>';
}
correspond à la fonction array_count_values ()

J'ai eu ce code que l'on m'a donnée
<?php
$array = array (
	"testons" => "test",
	"testons" => "test",
	"testons" => "test1",
	3 => "test",
	4 => "test",
	5 => "test4");
	
$resultat = array_count_values($array);

foreach ($resultat as $key => $value) 
{
    echo $key . '&nbsp;est&nbsp;repertori&eacute;:&nbsp;' . $value . '<br />';
}
?>
mais il affiche

test1 est repertorié: 1
test est repertorié: 2
test4 est repertorié: 1

et moi, je veux le contraire !

ViPHP
xTG
ViPHP | 7331 Messages

13 avr. 2012, 20:49

Et c'est quoi pour toi l'inverse de ça ?
Car c'est pas clair du tout ce que tu souhaites...

MEGASTORE
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 20:51

je veux compter le nombre des clés "testons"

ViPHP
xTG
ViPHP | 7331 Messages

13 avr. 2012, 20:53

Cela n'a aucun sens, car tu ne peux avoir deux clé ayant la même valeur...
Une clé est unique !