Le guide complet de la fonction array_pad en PHP
Découvrez comment utiliser la fonction array_pad de PHP pour compléter un array à une taille cible avec une valeur de remplissage de votre choix.
Les arrays sont au cœur de presque tout programme PHP, et il arrive parfois qu'un array doive avoir une longueur garantie — complété par des valeurs fictives lorsqu'il est trop court. La fonction array_pad de PHP fait exactement cela : elle renvoie une copie d'un array étendu à une taille cible, avec une valeur de votre choix remplissant les nouvelles cases. Ce guide couvre sa syntaxe, la manière dont le signe de la taille contrôle la direction du remplissage, les comportements qui surprennent souvent, ainsi que des exemples exécutables.
Ce que fait la fonction array_pad
array_pad renvoie un nouvel array complété jusqu'à une longueur que vous spécifiez. Deux règles régissent son comportement :
- Si la taille demandée est supérieure à l'entrée, des copies de votre valeur de remplissage sont ajoutées — à la fin lorsque la taille est positive, au début lorsqu'elle est négative.
- Si la taille demandée est inférieure ou égale à la longueur actuelle de l'array, l'array est renvoyé inchangé.
array_padne supprime jamais d'éléments.
L'array d'origine n'est pas modifié ; vous travaillez avec la valeur renvoyée.
Syntaxe de la fonction array_pad
array_pad(array $array, int $length, mixed $value): array$array: L'array d'entrée que vous souhaitez compléter. Il n'est pas modifié.$length: La taille cible. Une valeur positive remplit à droite (fin) ; une valeur négative remplit à gauche (début). Le nombre d'éléments ajoutés estabs($length) - count($array).$value: La valeur utilisée pour chaque élément ajouté. Elle peut être de n'importe quel type, y compris un autre array.
Cas d'utilisation de la fonction array_pad
La fonction array_pad est pratique lorsque vous souhaitez :
- Garantir qu'un array comporte au moins N éléments avant d'itérer sur des positions fixes.
- Aligner les données à droite ou à gauche en complétant le côté opposé.
- Remplir une grille, un formulaire ou une ligne de tableau de taille fixe avec des valeurs par défaut.
Exemples de la fonction array_pad
Voici quelques exemples illustrant comment la fonction array_pad peut être utilisée dans des scénarios réels :
Exemple 1 : Remplissage à la fin (taille positive)
Résultat :
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 0
[4] => 0
)L'array d'entrée $numbers comporte 3 éléments et la taille cible est 5, donc 5 - 3 = 2 zéros sont ajoutés à la fin.
Exemple 2 : Remplissage au début (taille négative)
Résultat :
Array
(
[0] => black
[1] => black
[2] => red
[3] => green
[4] => blue
)La taille -5 étant négative, le remplissage se fait au début. Les 3 couleurs originales conservent leur ordre et abs(-5) - 3 = 2 copies de 'black' sont préfixées. Notez que les clés sont réindexées à partir de 0 quelle que soit la direction.
Exemple 3 : Remplissage d'un array avec une valeur spécifique
Résultat :
Array
(
[0] => a
[1] => b
[2] => c
[3] => z
[4] => z
[5] => z
[6] => z
)L'array d'entrée comporte 3 éléments et la taille cible est 7, donc 7 - 3 = 4 copies de 'z' sont ajoutées.
Pièges et cas particuliers
Quelques comportements surprennent souvent :
- Il ne réduit jamais un array. Si
abs($length)est inférieur ou égal au nombre d'éléments actuel, l'array est renvoyé inchangé. Pour supprimer des éléments, utilisezarray_sliceouarray_spliceà la place. - Les clés string sont conservées, mais le remplissage est toujours numérique. Lorsque vous complétez un array associatif, les clés string existantes sont préservées et les nouveaux éléments reçoivent des clés entières séquentielles :
<?php
$scores = array('math' => 90, 'science' => 85);
print_r(array_pad($scores, 4, 0));
?>Array
(
[math] => 90
[science] => 85
[0] => 0
[1] => 0
)- La valeur de remplissage peut être de n'importe quel type. Passer un array comme
$valueinsère des copies de cet array entier, ce qui est utile pour construire des grilles de lignes par défaut. - Le remplissage est fixe, non interpolé. Chaque nouvelle case reçoit exactement le même
$value. Si vous avez besoin d'un remplissage généré ou séquentiel, construisez-le avecarray_fillourange().
Fonctions associées
array_fill— créer un nouvel array entièrement rempli d'une seule valeur.array_merge— combiner des arrays plutôt que d'en compléter un.array_sliceetarray_splice— extraire ou supprimer des portions d'un array.array_chunk— diviser un array complété en groupes de taille fixe.
Conclusion
array_pad est le moyen le plus rapide de garantir qu'un array a une longueur donnée sans écrire de boucle. Retenez les deux règles qui régissent son comportement : une taille positive complète la fin, une taille négative complète le début, et une taille inférieure ou égale à la longueur actuelle laisse l'array inchangé. Avec cela en tête — et les comportements liés aux clés et les cas particuliers décrits ci-dessus — vous pouvez utiliser array_pad chaque fois que vous avez besoin d'arrays de taille fixe et prévisible dans vos projets PHP.