Tableau associatif php

Résolu
PK974 Messages postés 7 Statut Membre -  
PK974 Messages postés 7 Statut Membre -
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
Configuration: Linux
Firefox 2.0.0.12

2 réponses

  1. R4f Messages postés 441 Statut Membre 62
     
    <?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
    1. PK974 Messages postés 7 Statut Membre
       
      merci encore Raph !
      0
  2. R4f Messages postés 441 Statut Membre 62
     
    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
    1. PK974 Messages postés 7 Statut Membre
       
      Merci bcp Raph !!!
      c'etait exactement ce que je voulais faire !!

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

      thanks :-))
      pk
      0
    2. PK974 Messages postés 7 Statut Membre
       
      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