J'aimerais fusionner deux tableaux les uns avec les autres:
$merged = array(1 => 'a', 3 => 'c*');
3 Réponses :
Cela devrait le faire si je comprends votre logique correctement: implémentation: p> sortie: p>
Union contre l'intersection. Mais l'Union ajoutera des clés de $ filtré code> aussi bienfait. Je vais essayer.
Jup. Je viens de le tester, ma faute;). Cela fonctionne assez bien, seul l'ordre des clés change, mais ce n'est pas un problème car je les ai comme un index numérique, alors Ksort fait le travail. Parfait. Merci beaucoup!
@Deceze array_intersect_key ($ modifié, $ filtré) + $ filtré code> étrange. Je n'ai jamais vu cela auparavant. Aucune idée de ce qui se passe ici, mais ça marche! Quel est le travail pour
+ $ filtré code>
@Le array_intersect_key ($ modifié, $ filtré) code> prend toutes les valeurs de
$ modifié code> qui ont une clé dans
$ filtrée code>, c'est-à-dire qu'il produit un sous-ensemble de
$ filtré code> avec les valeurs de
$ modifié code>.
+ $ filtré code> ajoute ensuite le reste des valeurs à partir de
$ filtré code> dans le résultat, c'est-à-dire qu'il remplit le sous-ensemble sauvegarder pour avoir toutes les clés dans
$ filtrées code>.
Vous voudrez peut-être placer un retour $ modifié code> quand
$ filtré code> est vide en fonction de votre cas d'utilisation.
Si vous voulez que le deuxième tableau ($ B) soit le modèle indiquant que s'il n'y a que la clé là-bas, vous pouvez également essayer ce
Si vos clés sont non numériques (que les vôtres ne le sont pas, il ne s'agit donc pas d'une solution à votre question exacte), vous pouvez utiliser cette technique: résultat: p> Ceci fonctionne car pour des touches non numériques, Comme cela s'applique à la même question, mais avec des types de clés différents, je pensais la fournir. p> Si vous utilisez ceci avec des touches numériques, le résultat est simplement le tableau d'origine ( array_merge code> écrase les valeurs des touches existantes et ajoute les touches dans
$ modifié code> à la fin du nouveau tableau. Nous pouvons donc simplement supprimer toutes les touches de la fin de la matrice fusionnée plus que le nombre de la matrice d'origine. P>
$ filtré code> dans ce cas) avec des touches réindexées (c'est-à-dire comme si vous avez utilisé
array_values code>). P> p>