Hallo,
ich habe ein Skript gebaut mit welchem einige Keywords in Tabellen eingetragen werden sollen. Dazu schreibe ich die Keywords in eine Tabelle und speichere dann die uid, also einen eindeutigen Integerwert als Referenz in einem Array. Im Skript lasse ich mir dieses Array anzeigen und mit
print_r($uid_keywords);
erhalte ich dann:
Array ( [0] => 14 [1] => 15 [2] => 16 )
Sind also drei Werte zum Testen.
Dieses Array benutze ich nun mit einer foreach-Schleife und lasse mir ein paar Werte noch ausgeben.
print_r($uid_keywords);
foreach($uid_keywords as $keyword){
echo '<br/>key'.$keyword;
//--Anfang--
//--Code--
//--Ende--
print_r($uid_keywords);
}
Ich gebe also einmal das Array for der Schleife aus dann in der Schleife als erstes die Nummer des Keywords und am Ende der Schleife noch einmal das Array falls es verändert wurde.
Als Log kommt dann so etwas heraus:
Array ( [0] => 14 [1] => 15 [2] => 16 )
key14Array ( [0] => 14 [1] => 15 [2] => 16 )
key15Array ( [0] => 14 [1] => 15 [2] => 16 )
key16Array ( [0] => 14 [1] => 15 [2] => 16 )
Warning: Invalid argument supplied for foreach() in H:\Webseiten\Parkingseiten\keyword_insert_script.php on line 29
Warning: Invalid argument supplied for foreach() in H:\Webseiten\Parkingseiten\keyword_insert_script.php on line 29
Das heißt die Schleife läuft normal drei mal durch weil ja auch drei Werte im Array sind. Nur am Ende kommen zwei Fehlermeldungen. Und die verweisen auf eben jenes foreach
foreach($uid_keywords as $keyword){
Das befindet sich nämlich in der Zeile 29.
Allerdings verstehe ich die Fehlermeldung nicht. Normalerweise funktioniert eine foreach-Schleife doch so dass sie nur durch die Arrayelemente läuft die das benutzte Array enthält. Aber offenbar versucht die Schleife noch weiter Werte abzuholen. Ich sehe aber nicht wieso das so ist. Andere foreach-Schleifen funktionieren tadellos, nur diese eine nicht...
Die Variable $keyword umzubenennen hat auch keinen Effekt gehabt...
Weiß jemand wo das Problem liegt?
Grüße!
Sebastian