Commençons par comprendre ce qu'est un tableau aplati. Un tableau aplati est un tableau, mais ce tableau est une forme de tableau multidimensionnel, de tableau imbriqué ou de tableau contenant un autre tableau.
Aplatir est une approche ou une technique qui permet de réduire le tableau multidimensionnel à un tableau unidimensionnel appelé aplatir.
Parfois, nous avons besoin de ce type de données lorsque nous travaillons sur des projets ou résolvons un problème, il est alors utile de transmettre le groupe de l'ensemble de données à l'aide d'un tableau aplati.
Exemple :
// This is a flattened array let arr = [1,44, [2, [3,9], 67], 9];
Il existe plusieurs façons de résoudre ce genre de problème mais ici, je vais vous expliquer en utilisant la méthode Recursion, c'est l'une des meilleures approches pour résoudre ce genre de problème.
Ici, je ne vais pas détailler l'explication de la récursion, mais je vais donner un petit aperçu de ce qui se passe, si vous voulez en savoir plus, je créerai un article séparé pour cela.
La récursion est une approche de programmation pour résoudre les problèmes de types de répétition d'œuvres, qui s'appellent directement ou indirectement jusqu'à ce qu'elles ne correspondent pas aux conditions particulières données, si elles correspondent, la fonction arrête l'appel elle-même.
// This is a flattened array // Input: let arr = [1,44, [2, [3,9], 67], 9]; // Function Defin function recur(a) { let newArr = []; for (let i =0 ; i < a.length; i++) { const element = a[i]; if (Array.isArray(element)) { // Function calling itself recursion newArr.push(...recur(element)) } else { newArr.push(element) } } return newArr; } console.log(recur(arr)) Output: [1,44,2,3,9, 67, 9] // We can also write the same code using for each: function flattenArray(items) { const flat = []; items.forEach(item => { if (Array.isArray(item)) { flat.push(...flatten(item)); } else { flat.push(item); } }); return flat; } onsole.log(flattenArray(arr)) output: [1,44,2,3,9, 67, 9]
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!