Tableau associatif php [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
21 mai 2008
-
Messages postés
7
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
21 mai 2008
-
Bonjour,
nouveau dans ce forum j'espere trouver une aide ici .
mon probleme conserne les tableaux et / ou tableaux associatif en PHP.

j 'expose mon problem,
j'ai 3 tableaux de 3 tailles differentes :

soit
$tab1 = array ("cahier","stylo","feutre","lampe","ciseaux","livre" ); // liste exaustive de fourniture
$tab2 = array ("cahier" => 17 ,"lampe =>5","ciseaux => 1");
$tab3 = array ("cahier" => 10, "feutre" =>2);


j'aimerai pouvoir recuperer 3 tableaux de meme tailles comme ce qui suit:

$tab1= array ("cahier","stylo","feutre","lampe","ciseaux","livre" ); // reste inchangé
$tab2= array ("cahier" => 17 ,"lampe =>5","ciseaux => 1","stylo" =>0,"feutre"=>0);
$tab3= array ("cahier" =>10, "feutre" =>2, "stylo"=>0, "lampe"=>0, "ciseaux"=>0, "livre",=>0);

je m 'explique,
$tab1 reste inchangé c le meme .
$tab2 contient les anciens couple cle /valeurs a cela s'ajoute les clés de $tab1 qui n'y était pas dans $tab2 avec pour valeur 0;

de meme pour $tab3 il contient ses anciens cle /valeurs auquel s'ajoute les clés de $tab1 qui n'y était pas dans $tab3 avec pour valeur 0;

y aurait il un fonction PHP qui ferait cela ?
je suis perdu avec mes boucles foreach ...

je vous en remercie par avance !

PK974

2 réponses

Messages postés
441
Date d'inscription
dimanche 13 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2008
61
<?php

$tab2 = array ('cahier' => 17 ,'lampe' =>5,'ciseaux' => 1);
echo "Associatif : \n";
var_dump($tab2);

$tab2 = array_values($tab2);
echo "Converti : \n";
var_dump($tab2);

$tab2 = array ('0' => 17 ,'1' =>5,'2' => 1);
echo "Correction1 : \n";
var_dump($tab2);

$tab2 = array ( 17 ,5, 1);
echo "Correction2 : \n";
var_dump($tab2);

?>


En fait, il ne s'agit pas de remplacer mais d'extraire uniquement les valeurs d'un tableau associatif, sous forme de tableau simple.


Raph
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
21 mai 2008

merci encore Raph !
Messages postés
441
Date d'inscription
dimanche 13 janvier 2008
Statut
Membre
Dernière intervention
5 mai 2008
61
Bon, il faut 2 fonctions : array_fill_keys et array_merge.


<pre><?php

$tab1 = array ('cahier','stylo','feutre','lampe','ciseaux','livre' ); // liste exaustive de fourniture
$tab2 = array ('cahier' => 17 ,'lampe' =>5,'ciseaux' => 1);
$tab3 = array ('cahier' => 10, 'feutre' =>2);

echo "\$tab1 : \n";
print_r($tab1);

echo "\$tab_tmp : \n";
$tab_tmp = array_fill_keys($tab1, 0);
print_r($tab_tmp);

echo "\$tab2 : \n";
$tab2 = array_merge($tab_tmp, $tab2);
print_r($tab2);

echo "\$tab3 : \n";
$tab3 = array_merge($tab_tmp, $tab3);
print_r($tab3);

?></pre>



Raph
Messages postés
7
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
21 mai 2008

Merci bcp Raph !!!
c'etait exactement ce que je voulais faire !!

mais je connaissait pas l 'existance de ces fonctions .....

thanks :-))
pk
Messages postés
7
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
21 mai 2008

Bonjour,
j'aurais une autre question !

sauriez vous s 'il existe un fonction en PHP qui renplacerai les cles d'un tableau associatif , par des valeur numerique!

exemple :
$tab2 = array ('cahier' => 17 ,'lampe' =>5,'ciseaux' => 1);
deviendrai

$tab2 = array ('0' => 17 ,'1' =>5,'2' => 1);

ou mieux encore :

$tab2 = array ( 17 ,5, 1);

Merci