Outils pour utilisateurs

Outils du site


informatique:langages:php:array_pop_vs._array_shift

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
informatique:langages:php:array_pop_vs._array_shift [2025/01/02 09:28] – supprimée - modification externe (Date inconnue) 127.0.0.1informatique:langages:php:array_pop_vs._array_shift [2025/01/02 09:28] (Version actuelle) – ↷ Page déplacée de informatique:php:array_pop_vs._array_shift à informatique:langages:php:array_pop_vs._array_shift alexis
Ligne 1: Ligne 1:
 +====== 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 :
 +<WRAP prewrap>
 +<code php 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;
 +
 +</code>
 +</WRAP>