<?php
namespace App\Infraestructure\Iterator;
use Iterator;
class ArrayIterator implements Iterator {
private $array = [];
private $position = 0;
public function __construct($array) {
// Asegúrate de que los índices del array sean numéricos y consecutivos
$this->array = array_values($array);
$this->position = 0;
}
// Restablece el iterador al primer elemento
public function rewind() {
$this->position = 0;
}
// Devuelve el elemento actual del array
public function current() {
return $this->array[$this->position];
}
// Devuelve la clave del elemento actual del array
public function key() {
return $this->position;
}
// Avanza el iterador al siguiente elemento
public function next() {
++$this->position;
}
// Comprueba si la posición actual es válida
public function valid() {
return isset($this->array[$this->position]);
}
}