Tableau associatif php

Résolu/Fermé
PK974 Messages postés 7 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 21 mai 2008 - 18 avril 2008 à 16:11
PK974 Messages postés 7 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 21 mai 2008 - 22 avril 2008 à 11:04
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

R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
22 avril 2008 à 10:52
<?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
PK974 Messages postés 7 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 21 mai 2008
22 avril 2008 à 11:04
merci encore Raph !
0
R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
18 avril 2008 à 17:18
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
2
PK974 Messages postés 7 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 21 mai 2008
18 avril 2008 à 17:43
Merci bcp Raph !!!
c'etait exactement ce que je voulais faire !!

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

thanks :-))
pk
0
PK974 Messages postés 7 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 21 mai 2008
22 avril 2008 à 10:19
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
0