J'ai deux tableaux bidimensionnels (en fait, il s'agit de tableaux associatifs imbriqués) avec une structure prédéfinie: $array1
et $array2
. tableau première liste de tous les objets par leur numéro d'identification:Fusionner des tableaux bidimensionnels en PHP
$array1 = array(
array(id => 1),
array(id => 2),
array(id => 3),
array(id => 4),
array(id => 5)
);
Le deuxième tableau énumère les relations entre les objets (par exemple, l'objet 2 est relié à des objets 3, 4 et 5):
$array2 = array(
array(id1 => 1, id2 => 2),
array(id1 => 2, id2 => 3),
array(id1 => 2, id2 => 4),
array(id1 => 2, id2 => 5)
);
L'objectif est de remplacer les valeurs id de $array2
avec les indices correspondants de $array1
. Donc, dans mon cas, le résultat devrait être:
0 1 // index of value 1 (id1) in $array1 is 0, index of 2 (id2) is 1
1 2
1 3
1 4
Ci-dessous est mon travail actuel. Tout d'abord je « convertir » $array1
à la matrice unidimensionnelle:
foreach ($array1 as $row) {
$array3[] = $row['id'];
}
Puis-je utiliser la fonction array_search
et passer par $array2
et rechercher la $array3
pour une valeur donnée et renvoie la clé correspondante $array3
:
foreach ($array2 as $row) {
$value1 = $row['id1'];
$key1 = array_search($value1, $array3);
echo $key1;
echo "\t";
$value2 = $row['id2'];
$key2 = array_search($value2, $array3);
echo $key2;
echo '<br />';
}
Ma question est simple: existe-t-il une façon plus élégante de le faire (sans utiliser la fonction array_search)?
Merci d'avance pour vos idées.
Best, Andrej
Merci, fonctionne comme un charme. – Andrej