-
Notifications
You must be signed in to change notification settings - Fork 0
ArrayTool
Gérits Aurélien edited this page Feb 13, 2026
·
2 revisions
La classe ArrayTool facilite la manipulation des données structurées. Elle permet de jongler entre les types array et iterable (Traversable), d'extraire des colonnes de données et de trier des collections d'objets ou de tableaux associatifs de manière fluide.
Namespace : Magepattern\Component\Tool\ArrayTool
| Méthode | Paramètres | Retour | Description |
|---|---|---|---|
| toIterator() | mixed $var | Traversable | Force la conversion d'une variable en itérateur. |
| iteratorToArray() | iterable $data, $recursive | array | Convertit récursivement un itérateur en tableau standard. |
| array_sortBy() | $field, &$array, $dir | void | Trie un tableau de tableaux par une clé spécifique. |
| array_column() | $input, $key, $index | array | Extrait une colonne spécifique d'un tableau multi-dimensionnel. |
| replaceArray() | $base, $replacement | array | Fusionne et remplace les clés d'un tableau. |
- Conversion et Itération Cette méthode est idéale pour s'assurer qu'une variable peut être utilisée dans un foreach, même si elle ne contient qu'une seule valeur ou un objet complexe.
use Magepattern\Component\Tool\ArrayTool;
$data = "Une simple chaîne";
$iterator = ArrayTool::toIterator($data);
foreach ($iterator as $item) {
// Fonctionne même si $data n'était pas un tableau au départ
}- Tri de collections (array_sortBy) Le tri se fait par référence sur le tableau d'origine. C'est l'outil parfait pour classer des résultats issus d'une base de données ou d'un fichier XML.
$users = [
['name' => 'Aurelien', 'age' => 35],
['name' => 'Julien', 'age' => 28],
['name' => 'Sophie', 'age' => 42],
];
// Trie par âge de manière descendante
ArrayTool::array_sortBy('age', $users, 'desc');
// Résultat : Sophie (42), Aurelien (35), Julien (28)- Extraction de données (array_column) Permet d'extraire une liste de valeurs à partir d'un tableau associatif complexe.
// On veut juste la liste des noms
$names = ArrayTool::array_column($users, 'name');
// Résultat : ['Sophie', 'Aurelien', 'Julien']