W3docs

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_pad ne 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 est abs($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)

php— editable, runs on the server

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)

php— editable, runs on the server

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

php— editable, runs on the server

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, utilisez array_slice ou array_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 $value insè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 avec array_fill ou range().

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_slice et array_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.

Pratique

Pratique
Que fait la fonction array_pad() en PHP ?
Que fait la fonction array_pad() en PHP ?
Was this page helpful?