Outils pour utilisateurs

Outils du site


informatique:langages:php:array_pop_vs._array_shift

array_pop vs. array_shift

La fonction array_pop permet d'extraire le dernier élément d'un tableau tandis que array_shift permet d'extraire le premier élément d'un tableau. La finalité de ces fonctions est similaire mais il faut prêter attention aux performances car array_shift doit recalculer les index, ce qui n'est pas le cas de array_pop. Pour un tableau de petite taille, la différence est imperceptible mais quand sa taille augmente, cette différence se fait bien sentir. En effet, la complexité de array_pop est de O(1) tandis que celle de array_shift est de O(n).

Voici un exemple pour s'en convaincre :

benchmark.php
<?php
 
$shift = array_fill(0, 1000000, uniqid());
$pop = $shift;
 
echo 'array_shift processing: ';
$shiftStart = microtime(true);
while (null !== array_shift($shift)) {
}
echo (microtime(true) - $shiftStart), PHP_EOL, 'array_pop processing: ';
$popStart = microtime(true);
while (null !== array_pop($pop)) {
}
echo (microtime(true) - $popStart), PHP_EOL;
informatique/langages/php/array_pop_vs._array_shift.txt · Dernière modification : 2025/01/02 09:28 de alexis