【问题标题】:Recursively modifying values of multidimensional array递归修改多维数组的值
【发布时间】:2025-12-02 20:30:01
【问题描述】:

我需要遍历多维数组的每个元素并修改内容。我为此使用了array_walk_recursive,但遇到了一个小问题。

例子:

$arr = array('cat'=>'cool', 2=>array('something'=>"<script>alert('hello');</script> hello!"));
print_r($arr); // something bad pops up

所以,使用这个:

function scrub_array($value, $key)
{
    $value = scrub_string($value);
}

我调用:

array_walk_recursive($arr, 'scrub_array');

然后

print_r($arr); 

讨厌的弹出窗口仍然出现。我知道scrub_string() 在直接应用时会删除 javascript。

数组值没有被修改的代码有什么问题?

【问题讨论】:

  • function scrub_array($value, $key) -> function scrub_array(&amp;$value, $key)
  • 谢谢,请张贴作为信用答案。

标签: php arrays recursion multidimensional-array


【解决方案1】:

复制Rizier123来自cmets的回答:

function scrub_array($value, $key) -> function scrub_array(&$value, $key)

【讨论】: