Maison >développement back-end >tutoriel php >Comment puis-je aplatir efficacement un tableau multidimensionnel à touches numériques en PHP ?

Comment puis-je aplatir efficacement un tableau multidimensionnel à touches numériques en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-12 21:53:14313parcourir

How Can I Efficiently Flatten a Multidimensional Numeric-Keyed Array in PHP?

Simplifier des tableaux multidimensionnels en structures linéaires

La conversion de tableaux multidimensionnels en leurs homologues unidimensionnels peut souvent être une tâche ardue, en particulier lorsqu'il s'agit de tableaux contenant uniquement des clés numériques. Cependant, il existe une solution simple mais élégante pour aplatir ces structures, en utilisant les fonctions de tableau de PHP.

Réponse expliquée

La solution utilise la fonction array_reduce() en conjonction avec array_merge(). array_reduce() parcourt chaque élément du tableau, appliquant une fonction définie par l'utilisateur pour accumuler une valeur réduite finale. Dans ce cas, nous passons la fonction array_merge(), qui combine deux tableaux en un seul tableau.

En spécifiant un tableau vide comme valeur initiale de l'opération de réduction, nous nous assurons que le résultat final est un tableau contenant tous les éléments du tableau multidimensionnel. Chaque itération concatène le sous-tableau actuel avec l'accumulateur, aplatissant ainsi efficacement l'entrée.

Exemple de mise en œuvre

Considérez le tableau multidimensionnel fourni dans la question :

$array = [
    [0 => 'foo', 1 => 'bar', 2 => 'hello'],
    [0 => 'world', 1 => 'love'],
    [0 => 'stack', 1 => 'overflow', 2 => 'yep', 3 => 'man'],
];

Pour aplatir ce tableau, nous pouvons simplement utiliser ce qui suit code :

$result = array_reduce($array, 'array_merge', []);

Cela produirait le tableau unidimensionnel souhaité :

$result = [
    'foo', 'bar', 'hello', 'world', 'love', 'stack', 'overflow', 'yep', 'man'
];

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn