Skip to content
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

Liste des méthodes

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.

Usage courant

  1. 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
}
  1. 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)
  1. 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']

Clone this wiki locally