Combiner deux array

Résolu
Nimajneb Messages postés 33 Statut Membre -  
Nimajneb Messages postés 33 Statut Membre -
Bonjour,

J'ai deux array.
J'aimerai que la valeur de l'array 1 devienne l'objet dans lequel est la valeur de l'array 2.

Exemple :

Mes deux array vue par un var_dump sont(qui sont remplies automatiquement en amont de mon prog) :

array (size=3)
0 => string 'banane' (length=6)
1 => string 'fraise' (length=6)
2 => string 'kiwi' (length=4)

array (size=3)
0 => string 'jaune' (length=5)
1 => string 'rouge' (length=5)
2 => string 'vert' (length=4)

Mon but est d'obtenir un var_dump final qui sera :

array (size=3)
0 =>
object(stdClass)[1]
public 'banane' => string 'jaune' (length=5)
1 =>
object(stdClass)[2]
public 'fraise' => string 'rouge' (length=5)
2 =>
object(stdClass)[3]
public 'kiwi' => string 'vert' (length=4)

NB : Les clés sont toujours dans le bonne ordre. C'est-à-dire que les clés des valeurs des deux arrays sont toujours les bonnes clés des bonnes valeurs que je veux associés : 0 avec 0, 1 avec 1 etc... .

NB2 : Je ne sais pas à l'avance combien j'ai de valeur dans mes tableaux. Toujours est-il que j'en aurai toujours autant dans une array que dans l'autre bien sûr !

Est-ce possible ? Je suis bloqué. MERCI

2 réponses

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    Voici une solution possible :

    $tab1 = array('banane', 'fraise', 'kiwi');
    
    $tab2 = array('jaune', 'rouge', 'vert');
    
    $arrayAssoc = array_combine($tab1, $tab2);
    var_dump($arrayAssoc); // array(3) { ["banane"]=> string(5) "jaune" ["fraise"]=> string(5) "rouge" ["kiwi"]=> string(4) "vert" } 
    
    
    $arrayObjects = array();
    
    foreach ($arrayAssoc as $key => $value) {
    	$arrayObjects[] = (object) array($key => $value);
    }
    
    echo '<pre>';
    var_dump($arrayObjects);
    var_dump($arrayObjects[0]->banane);
    echo '</pre>';
    


    Bonne journée
    1
    1. Nimajneb Messages postés 33 Statut Membre 1
       
      Merci à vous deux !!!!

      J'avais bien testé cette fonction array_combine mais sans succès, en fait j'avais dû me planter dans la syntaxe.

      En tout cas un grand MERCI :)

      Bonne journée !!
      0
  2. Samyb2313
     
    Une autre tres simple comme tu le dit les cle sont dans le bonne ordre :

    $tab1 = array('banane', 'fraise', 'kiwi');
    $tab2 = array('jaune', 'rouge', 'vert');

    $tableaufinal = array();

    //Parcour d'un des 2 tableaux tant qu'il y a des cases
    for ($i=0;$i<count($tab1);$i++)
    {
    //ici tu creeait tes valeurs :
    $tableaufinal[] = array($tab1[$i] => $tab2[$i]);
    }

    0
    1. Nimajneb Messages postés 33 Statut Membre 1
       
      J'ai utilisé array_combine. Merci qd même pour ton aide Samy ;) !
      0