Nehmen wir an, ich habe diese foreach-Schleife:
foreach ($lists as $list) {
if (next list item == "test") {
echo "the next $list item equals 'test'";
}
}
Ich hoffe, du verstehst, was ich mit dem Code bezwecken will.
Danke,
Nehmen wir an, ich habe diese foreach-Schleife:
foreach ($lists as $list) {
if (next list item == "test") {
echo "the next $list item equals 'test'";
}
}
Ich hoffe, du verstehst, was ich mit dem Code bezwecken will.
Danke,
Sie können verwenden next()
.
Denken Sie daran, dass dies den internen Zeiger vorwärts bewegt, so dass Sie ihn zurückspulen können, indem Sie prev()
.
In dem folgenden Beispiel habe ich jedoch current()
die den aktuellen Zeiger eines Arrays ermittelt. foreach()
scheint es einmal im Körper des Konstrukts zu erhöhen.
Konforce hat diese Idee ursprünglich gehabt.
Das letzte Leerzeichen ist NULL
was gut ist (es gibt kein nächstes Mitglied). :)
$lists = range('a', 'f');
foreach($lists as &$value) {
$next = current($lists);
echo 'value: ' . $value . "\n" . 'next: ' . $next . "\n\n";
}
unset($next, $value);
value: a
next: b
value: b
next: c
value: c
next: d
value: d
next: e
value: e
next: f
value: f
next:
CodePad .
Bei einem indexbasierten Array ist das ganz einfach. Verwenden Sie eine for
Schleife oder die Verwendung von $i => $val
in einer Schleife.
Für andere Arrays können Sie etwa so vorgehen:
$current = current($lists);
while ($current !== false)
{
$next = next($lists);
echo "$current => $next\n";
$current = $next;
}
obwohl es nicht funktioniert, wenn Ihr Array den literalen Wert false enthält. Sie müssen auch reset
um erneut eine Schleife zu durchlaufen.
Sie können das aktuelle/nächste Element emulieren:
<?php
$lists = range('a', 'f');
foreach ($lists as $next) {
if($list !== NULL) {
if ($next == "test") {
echo "the next $next item equals 'test'";
}
echo 'current: ' . $list . ', next: ' . $next . "\n";
}
$list = $next;
}
?>
Sortie :
current: a, next: b
current: b, next: c
current: c, next: d
current: d, next: e
current: e, next: f
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.