递归地通过php中的数组来修改叶子

Aar*_*aro 1 php mysql arrays

我有以下数组

$array = array(
  array(
    "name" => "Jacky O'Macky",
    "groups" => array (
      array (
        "Joseph O'Brien",
        "Jenna Williams"
      ),
      array (
        "Shaq O'Neil",
        "John Fabio"
      )
    )
  ),
  array(
    "name" => "Nate O'Grady",
    "groups" => array (
      array (
        "Joseph O'Brien",
        "Jenna Williams"
      ),
      array (
        "Shaq O'Neil",
        "John Fabio"
      )
    )
  )
);
Run Code Online (Sandbox Code Playgroud)

我想通过每个数组并使用htmlspecialchars()撇号处理名称并保持相同的多维数组结构.

这是我到目前为止所拥有的

function htmlentities_array($array)
{
  if (is_array($array))
  {
    foreach($array as $key => $value)
    {
      if (is_string($value))
      {
        $array[$key] = htmlspecialchars($value);
      }
      else
      {
        $array[$key] = htmlentities_array($value);
      }
    }
  }
  else
  {
    $array = htmlspecialchars($array);
  }

  return $array;
}
Run Code Online (Sandbox Code Playgroud)

我叫这个通过$array = htmlentities_array(array).它似乎只在第一级工作.

Art*_*nix 6

干得好

array_walk_recursive ($array, function(&$v,$k){
  $v = htmlspecialchars($v, ENT_QUOTES);
});

print_r($array);
Run Code Online (Sandbox Code Playgroud)

产量

Array
(
   [0] => Array
    (
        [name] => Jacky O'Macky
        [groups] => Array
            (
                [0] => Array
                    (
                        [0] => Joseph O'Brien
                        [1] => Jenna Williams
                    )

                [1] => Array
    ....
Run Code Online (Sandbox Code Playgroud)

简单...

砂箱