如何通过foreach循环修改数组的值?

Cec*_*uez 2 php foreach

所以我有这个foreach循环 - 我想根据我对值的修改来修改数组.但是,当我尝试稍后将$ bizaddarray转换为字符串时,所有HTML标记仍然存在.这是我的foreach循环 - 如何使条带标签永久化?

    foreach ($bizaddarray as $value) {
        strip_tags(ucwords(strtolower($value)));
    }
Run Code Online (Sandbox Code Playgroud)

Mik*_*ell 6

有两种方法,您可以直接更改当前值共享的内存位置,或使用源数组访问该值.

// Memory reference
foreach ($bizaddarray as &$value) {
    $value = strip_tags(ucwords(strtolower($value)));
}
unset($value); # remove the reference
Run Code Online (Sandbox Code Playgroud)

要么

// Use source array
foreach ($bizaddarray as $key => $value) {
    $bizaddarray[$key] = strip_tags(ucwords(strtolower($value)));
}
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用选项 2,但使用复制的数组,因为我认为 PHP 不能很好地处理您更改正在迭代的数组的键。在这种情况下很好,但通常不是最佳实践。我似乎记得选项 1 给我带来了几次麻烦,因为 PHP 在 foreach 完成后没有重置指针并得到了一些幽灵更改。凌乱的。 (2认同)