Pour chaque tableau, PHP garde un pointeur sur l'élément courant. Ce pointeur n'est pas un pointeur comme en C, mais plutôt un curseur comme celui utilisé dans les résultat de requêtes de sélection des bases de données.

Plusieurs fonctions permettent de travailler avec ce pointeur :

current() | retourne la valeur de l'élément courant
reset() | place le pointeur sur le premier élément et renvoie sa valeur
end() | place le pointeur sur le dernier élément et renvoie sa valeur
next() | place le pointeur sur l'élément suivant et renvoie sa valeur
prev() | place le pointeur sur l'élément précédent et renvoie sa valeur
each() | retourne la clé et la valeur de l'élément courant (sous la forme d'un tableau) et place le pointeur sur l'élément suivant
key() | retourne la clé de l'élément courant

Les fonctions d'itérations sont le plus souvent utilisées avec une boucle while sur un tableau associatif.

Exemple : fonctions d'itération
<?php require('bib_fonctions.php'); htmlDebut('Fonctions d\'itération'); $t['B41d'] = 'Pierre'; $t['C24a'] = 'Paul'; $t['D12z'] = 'Jacques'; echo 'Début du tableau : ', reset($t); echo '<br>Suivant : ', next($t); echo '<br>Suivant : ', next($t); echo '<br>Suivant : ', next($t); // n'existe pas htmlInfo('Lire un tableau associatif "en avançant"'); reset($t); while ($x = current($t)) { echo '<br>Bureau ', key($t), ' occupé par ', $x; next($t); } htmlInfo('Lire un tableau associatif en arrière'); end($t); while ($x = current($t)) { echo '<br>Bureau ', key($t), ' occupé par ', $x; prev($t); } htmlFin(); ?>

Notez que la fonction each() est OBSOLÈTE à partir de PHP 7.2.0.