Page 1 sur 1

Mixer les clés de 2 tableaux dont les valeurs sont similaire

Posté : 17 janv. 2010, 10:33
par beninsky112
Bonjour à tous.

Je souhaite faire quelque chose de simple mais je n'arrive pas à trouver la fonction PHP approprié ou la solution.

J'ai 2 tableaux :
Tableau1 {
1 => "mange"
2 => "dort"
3 => "cours"
}

Tableau2 {
500 => "aime"
400 => "dort"
205 => "cours"
}

Sachant que les valeurs n'apparaissent jamais 2 fois, j'aimerais avoir le tableau suivant :
TableauFinal {
2 => 400
3 => 205
}

Merci d'avance

Re: Mixer les clés de 2 tableaux dont les valeurs sont similaire

Posté : 17 janv. 2010, 10:47
par Nours312
je dirais ...
$k = array_keys($tab1);
$v = array_values($tab2);

foreach ($k as $j => $t){
  $k[$j] = $v[$j];
}

ça te va ?

Re: Mixer les clés de 2 tableaux dont les valeurs sont similaire

Posté : 17 janv. 2010, 11:47
par ooflorent
// Création des tableau
$a1 = array(1 => "mange", 2 => "dort", 3 => "cours");
$a2 = array(500 => "aime", 400 => "dort", 205 => "cours");
$a3 = array();

// Retourne le second tableau
$a2 = array_reverse($a2);

// Parcours du premier tableau
foreach ($a1 as $k => $v) {
    // Est-ce que la valeur est dans le second tableau ?
    if (isset($a2[$v])) {
        $a3[$k] = $a2[$v];
    }
}

Re: Mixer les clés de 2 tableaux dont les valeurs sont similaire

Posté : 17 janv. 2010, 11:48
par Invité
OK résolu en inversant le deuxième tableau et en utilisant ce code :

$tab1 = array(
1 => "mange",
2 => "dort",
3 => "cours"
);

$tab2 = array(
"aime" => 500,
"dort" => 400,
"cours" => 205
);

$final = array();

foreach ($tab1 as $key => $value) {
if(isset($tab2[$value])) {
$final[$key] = $tab2[$value];
}
}

print_r($final);
Merci pour votre aide !