Je veux fusionner le niveau supérieur de la matrice, de sorte que toutes les valeurs du deuxième niveau partageant le même parent forment une seule matrice à ce parent.
Array 1: P>
Array ( [0] => Array ( 'C1' => Array (C1_complete, C1_29-95, C1_49-95), 'AC' => Array (AC_complete, AC_29-95) ) )
3 Réponses :
Si je n'utilise que Array 2, et un simple La sortie est la suivante: p> < Pré> xxx pré> C'est bien si ce code est dans une fonction: p> La sortie reste la même. p> p> foreach code> boucle code>, je peux le faire de cette façon:
Pour vos tableaux, vous n'avez pas besoin de la première boucle, mais si vous avez plusieurs tableaux dans votre tableau. Juste boucle et grep pour les articles commençant par la clé: avec vos tableaux donnés: p>
Merci! Je t'ai upvote - je suis nouveau alors que mes upvotes ne montrent pas publiquement
En fait, cela ne fonctionnera pas. Si vous changez $ Array2 code> à
$ array2 [0] code> alors il fonctionne. Une explication serait bien.
foreach ($ aray1 [0] comme $ k) $ résultat [0] [$ k] = preg_grep ("/ ^ $ k /", $ array2 [0]); code> fonctionnerait également. .
J'ai enlevé mon bowvote. Ce n'est pas une solution efficace, mais elle est (possible) très courte. Je ne savais pas preg_grep () code> pourrait filtrer un tableau, mais il est utile de savoir.
Eh bien, les deux simples code> et
élégant code> semble très improbable pour moi dans ce cas car cela pourrait être une opinion basée sur celle-ci. Un simple pourcheach est le moyen le plus facile et le plus efficace d'y parvenir. Cependant, pour l'élégance, vous pouvez utiliser Array_walk , array_fill et https://3v4l.org/ VHFLH7 P> P>
Wow, cette solution est assez instructive à un niveau supérieur - je vous remercie, monsieur pour votre entrée éclairante! Upvoted.
Comment comprendre que c1 == com1 ...?
Désolé - réparé maintenant - c'était une faute de frappe.
Vous n'avez pas réparer le résultat souhaité.
Mélangez votre pardon, monsieur - fixé maintenant.
Oui, maintenant ça a du sens. 😉
Vos tableaux vont-ils toujours être de la même longueur?
Une autre question est la suivante: votre réseau de haut niveau ne contient-il toujours qu'une seule entrée?
@Innervisions non, les longueurs de réseau peuvent varier.
@Kikosoftware Oui - Le niveau supérieur contient uniquement une entrée.
Je pense que Innervisions signifie: Les array 1 et le tableau 2 sont-ils toujours de la même longueur? Nous comprenons que le nombre d'entrées dans les deux peut varier. Mais si Array 1 a 10 entrées alors Array 2 aura également 10 entrées?
@Kikosoftware Oui, c'est correct. Les premier et seconds tableaux auront toujours le même nombre d'entrées.
Pourquoi avez-vous besoin d'une array 1, puisque toutes les informations semblent présentes dans le tableau 2?
@ user136649 Avez-vous essayé?
@Kikosoftware Si vous pouvez obtenir le résultat de Just Array 2, il serait satisfaisant d'ignorer la matrice 1.
En fait, pourquoi ne faisons-nous pas cela plus difficile. Supposons que les colonnes sont ce qu'on alignement et ce tableau 2 ne contienne pas le préfixe qui rend le tableau 1 redondant. C'est Array1 [2] s'aligne avec Array2 [2].
Votre solution avec Just Array 2 est bien tant que cela fonctionne, je ne peux pas l'exécuter maintenant, mais je vais l'exécuter à la première occasion de le tester.