Les Allergies
Alimentaires
Posez votre question Signaler

[php array] 2 dimensions / 3 colonnes [Résolu]

Edouard - Dernière réponse le 24 juil. 2007 à 18:29
Bonjour,
je voudrais faire un tableau php à deux dimensions avec trois colonnes : clé, value1, value2.
$a = array(1=>'value1','2'=>'Second'); (comme ça mais avec deux valeurs liées à la clé)
Est ce possible et si oui comment ?
Ensuite si j'ai un tableau de ce type :
1 | tom | moto
2 | tom | voiture
3 | yoan | moto
Est ce que je peux faire la somme selon une des colones value ?
exemple somme 'moto' = 2...
Merci
Edouard
Lire la suite 

[php array] 2 dimensions / 3 colonnes »

5 réponses
Réponse
+7
moins plus
Impossible directement.
Choix de replis
- 2 tableaux avec même indexation
prim = array( 1=>'tom',2=>'tom',3=>'yoan');
seco = array( 1=>'moto',2=>'voiture',3=>'moto');

- 1 tableau contenant des sous-tableaux
prim = array(
1=> array('tom','moto'), 2=>array('tom','voiture'), 3=>array('yoan','moto')
);
Edouard - 23 juil. 2007 à 08:56
Très clair. Merci.

Sinon, existe-t-il une fonction pour comptabiliser le nombre d'enregistrements similaires dans mon tableau ? un peu comme un count sql ?

par exemple 2 pour tom ou pour moto.
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

Pour ce qui passeraient par là, voici les solutions adoptées :

2 tableaux à 2 dimensions.

Pour éviter de compter et de faire un select distinct j'ai inversé les clé et valeurs :

les données importantes sont stockées comme clé et à chaque occurence, j'incrémente la valeur de 1.
-> chaque clé est unique (remplace le select distinct)
-> j'aditionne au fur et à mesure (pas de count)

if (array_key_exists($key, $tableau1)) {
// cette clé est déjà présente dans le tableau
// on incrément sa valeur de 1
$tableau1[$key] += 1;
} //fin if
// si le tableau ne contient pas cette clé
else {
$tableau1[$key] = 1;
} // fin else

Ensuite pour présenter mes données par ordre d'importance j'ai utilisé cette fonction :

arsort($tableau1);
foreach($tableau1as $key=> $value){
echo "$key ($value)<br />";
} // fin foreach

Merci pour l'aide et à plus.

Edouard
www.promete.fr
Ajouter un commentaire
Réponse
+0
moins plus
count(array_values($array))

Mais si ça doit être appliqué au cas présenté:
cas des 2 tableaux: 2,2

cas du tableau contenant des sous-tableaux: 3
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Merci pour la fonction count.

A priori je m'orient vers 2 tableaux à 2 dimensions (key autoincrémentée et value string).

Donc la solution du count me semble bonne.

Par contre existe-t-il une autre fonction qui fassse l'équivalent de select distinct (sql) pour isoler toutes les values identiques ? (et ensuite dénombrer avec count combien de fois on les retrouve) ?

Merci encore

Edouard
Ajouter un commentaire
Ce document intitulé « [php array] 2 dimensions / 3 colonnes » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?