Un tableau classique range ses éléments à des positions 0, 1, 2… un tableau associatif, lui, leur donne des noms : on retrouve une valeur par son étiquette plutôt que par son rang, comme un classeur à onglets nommés plutôt qu’une pile de feuilles numérotées.
Fonctionnement en PHP
PHP ne fait pas de distinction technique entre tableau indexé et tableau associatif : les deux sont le même type array, seule la nature des clés diffère. On le construit avec la syntaxe ['cle' => 'valeur'], et on parcourt ses paires avec foreach ($tableau as $cle => $valeur).
Dans WordPress
C’est la structure de données la plus utilisée par les API du cœur : les arguments de WP_Query, les tableaux d’options renvoyés par get_option(), ou encore le tableau $_POST issu d’un formulaire sont tous des tableaux associatifs. Beaucoup de fonctions WordPress attendent d’ailleurs un tableau associatif d’arguments plutôt qu’une longue liste de paramètres positionnels.
Exemple
$args = [
'post_type' => 'article',
'numberposts' => 5,
'orderby' => 'date',
];
$articles = get_posts($args);
À ne pas confondre avec
Un tableau associatif n’est pas un objet : il n’a ni méthodes ni visibilité de propriétés, même si l’écriture $tableau['cle'] ressemble à un accès d’objet. Certaines fonctions modernes du cœur, comme celles de l’API REST, acceptent d’ailleurs indifféremment un tableau associatif ou un objet stdClass équivalent, ce qui explique pourquoi on croise parfois les deux formes dans une même réponse JSON décodée avec json_decode() selon l’option associative choisie.