Array-Werte mit Foreach-Schleifen ändern
In Ihrem Code verwenden Sie eine foreach-Schleife, um das $bizaddarray zu durchlaufen und jedes zu ändern Wert mithilfe der Funktionen „strip_tags“, „ucwords“ und „strtolower“. Es scheint jedoch, dass die HTML-Tags noch vorhanden sind, wenn Sie das Array später in einen String konvertieren. Dies liegt daran, dass foreach-Schleifen standardmäßig eine Kopie der Array-Elemente erstellen, sodass alle Änderungen, die Sie an diesen Kopien vornehmen, nicht im ursprünglichen Array widergespiegelt werden.
Werte direkt ändern
Um die Änderungen dauerhaft zu machen, müssen Sie die Werte des ursprünglichen Arrays direkt ändern. Es gibt zwei Möglichkeiten, dies zu erreichen:
Methode 1: Speicherreferenz verwenden
Diese Methode beinhaltet die Verwendung des &-Operators, um eine Referenz auf den ursprünglichen Array-Wert zu erhalten. Alle Änderungen, die Sie über diese Referenz vornehmen, ändern direkt das entsprechende Element im ursprünglichen Array.
foreach ($bizaddarray as &$value) { $value = strip_tags(ucwords(strtolower($value))); } unset($value); // Remove the reference to prevent unintended modifications
Methode 2: Quellarray verwenden
Diese Methode beinhaltet den Zugriff auf Quell-Array-Element mithilfe der Variablen $key. Alle Änderungen, die Sie über dieses Element vornehmen, aktualisieren auch das ursprüngliche Array.
foreach ($bizaddarray as $key => $value) { $bizaddarray[$key] = strip_tags(ucwords(strtolower($value))); }
Durch die Verwendung einer dieser Methoden sollten die HTML-Tags dauerhaft aus Ihren Array-Werten entfernt werden und in der Zeichenfolge widergespiegelt werden Konvertierung.
Das obige ist der detaillierte Inhalt vonWarum funktioniert das Ändern von Array-Werten in einer Foreach-Schleife nicht und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!