Bonjour,
Voila je rencontre un petit problème avec mon code.
j'ai deux tableau $array1 et $array2 qui sont remplit comme ça
$array1=Array("piece1","piece2","piece3");
$array2=Array("1","4","6");
je veux mettre les contenus de ces tableaux dans un $array3 de tel façon que j'obtiens
$array3=Array("piece1"=>"1","piece2"=>"4",piece3=>"6")
j'ai beaucoup chercher mais j'arrive pas à trouver une solution
je souhaite que vous m'aider et merci d'avance
ouiiiiiii merci alex
mais en faite j'ai un petit probléme
aprés un var_dump le programme m'affiche ceci
piece de rechange
array (size=5)
0 => string 'demarreur' (length=4)
1 => string 'bougie' (length=3)
2 => string 'rotule pivot' (length=3)
3 => string 'Alternateur' (length=11)
4 => string 'parbrise' (length=3)
nombre de pieces
array (size=5)
0 => string '4' (length=1)
1 => string '1' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string '1' (length=1)
array (size=3)
'demarreur' => string '4' (length=1)
'bougie' => string '1' (length=1)
'Alternateur' => string '3' (length=1)
je ne sait pas pour quoi le 3 éme tableau prend que 3 cases malgré que j'ai 5 valeur dans les 2 tableaux :/
Salut,
C'est très simple, il suffit d'une boucle :
function createArray($arrKeys, $arrValues) {
// on vérifie qu'il y a autant de keys que de values
if (count($arrKeys) !== count($arrValues)) {
throw new Exception('There must be the same number of keys and values.');
}
$res = [];
// on boucle sur l'array des keys
foreach ($arrKeys as $key => $value) {
// on utilise comme clé la valeur dans l'array des keys et comme valeur la valeur dans l'array des values
$res[$value] = $arrValues[$key];
}
return $res;
}
Je n'ai pas vérifié que les arrays keys et values avaient les mêmes clés. Il suffirait d'ajouter un test dans la boucle pour vérifier que la clé existe dans l'array des values.
(J'avais oublié à quel point c'était horrible d'écrire du PHP. :D)
Étonnant, puisque quand je fais :
$a = ['demarreur', 'bougie', 'rotule pivot', 'alternateur', 'parbrise'];
var_dump($a);
$b = ['4', '1', '2', '3', '1'];
var_dump($b);
$c = array_combine($a, $b);
var_dump($c);
J'obtiens bien
array (size=5)
0 => string 'demarreur' (length=9)
1 => string 'bougie' (length=6)
2 => string 'rotule pivot' (length=12)
3 => string 'alternateur' (length=11)
4 => string 'parbrise' (length=8)
array (size=5)
0 => string '4' (length=1)
1 => string '1' (length=1)
2 => string '2' (length=1)
3 => string '3' (length=1)
4 => string '1' (length=1)
array (size=5)
'demarreur' => string '4' (length=1)
'bougie' => string '1' (length=1)
'rotule pivot' => string '2' (length=1)
'alternateur' => string '3' (length=1)
'parbrise' => string '1' (length=1)