Wenn Sie den Index, Schlüssel und Wert, entspricht dieser Python:
for ii, (key, value) in enumerate(my_dict.items()):
print ii
print key
print value
Sie können in PHP eine Enumerationsfunktion erstellen, die Ihre Objekte umschließt. Es soll nicht effizient sein (es iteriert und sammelt alles), aber es kann syntaktisch bequem sein.
function enumerate($array) {
class IterObject {
public $index;
public $key;
public $value;
}
$collect = array();
$ii = 0;
foreach ($array as $key => $value) {
$iter = new IterObject();
$iter->index = $ii;
$iter->key = $key;
$iter->value = $value;
array_push($collect, $iter);
$ii++;
}
return $collect;
}
Beispiel Nutzung:
foreach (enumerate($my_array) as $iter) {
echo $iter->index;
echo $iter->key;
echo $iter->value;
}
+1: das zweite Beispiel mit 'array_values' ist im Grunde, was 'enumerate' tut (natürlich' enumerate' akzeptiert auch Iteratoren, so dass Sie etwas mehr Code benötigen würden, um diesen Fall zu bearbeiten) ... – ircmaxell
Zusätzlich zu @ ircmaxells Kommentar, PHP hat 'iterator_to_array ($ iterator, false)', das ein Array vom Iterator erzeugt. 'false' sagt ihm, dass er die Schlüssel des Iterators nicht verwenden soll, sondern einen inkrementierenden Wert wie' array_values' generiert. – Izkata
Dokumentationslink für die faulen: ['array_values'] (http://php.net/manual/en/function.array-values.php). Es gibt auch ['array_keys'] (http://php.net/manual/en/function.array-keys.php), das dasselbe für die Schlüssel eines assoziierten Arrays tut. –