Comment fusionner subarray en PHP le plus facilement?
$arr[] = array('A','B');
$arr[] = array('C','B');
...
J'ai besoin d'obtenir le résultat fusionné de tous les sous tableau de $arr
.
Et pour la duplication d'entrées,doit chercher seul.
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez vraiment pas à boucle, essayez ceci:
array_unique
commearray_merge
va écraser les doubles des clés si trouvé de. Quelqu'un peut-il svp me répondre?OK par une autre question, j'ai découvert que celui-ci est réellement possible (je me suis essayé sans succès, j'ai eu la mauvaise version) si vous utilisez la version de PHP >= 5.3.0:
Si vous ne souhaitez que des valeurs uniques, vous pouvez appliquer
array_unique
:Cela fonctionne si vous n'avez qu'à plat des éléments dans les tableaux (c'est à dire pas d'autres tableaux). À partir de la documentation:
Si vous avez des tableaux dans vos tableaux, alors vous devez vérifier manuellement par exemple avec
array_walk
:Je pense que l'on peut supposer que les boucles internes (c'est à dire ce que
array_walk
est en train de faire) sont au moins pas plus lent qu'explicite boucles.ou pour un nombre illimité de cas, je pense que cela devrait fonctionner:
$result_arr = array_merge($result_arr, $sub_arr);
$merged_array = array_reduce($serp_res, 'array_merge', array());
avec l'ajout des quotas,'array_merge', a travaillé pour moi.
Cette réponse est fondée sur Felix Kling post.
C'est plus précis version avec fixation "non tableau" sous-éléments.
Pour PHP 5.6 avec splat opérateur:
Un moyen simple de gérer cela dans la Version de PHP >= 5.6 est d'utiliser le dossier de l'opérateur appelé aussi Argument Déballage.
`$arr = array_unique( array_merge( ...$arr ) );