如何循环并清理递归数组(PHP)

如何循环并清理递归数组(PHP),php,arrays,Php,Arrays,我正在努力完成我正在编写的清理多维数组的函数的最后一步。我希望函数在数组和任何子数组中循环,然后返回一个清理过的数组 虽然我可以使用array\u walk\u recursive输出清理后的数据,但我很难将数据作为与输入数据结构相同的数组返回。有人能帮忙吗?非常感谢您的帮助 这是我的密码: function process_data($input){ function clean_up_data($item, $key) { echo strip_tags($i

我正在努力完成我正在编写的清理多维数组的函数的最后一步。我希望函数在数组和任何子数组中循环,然后返回一个清理过的数组

虽然我可以使用array\u walk\u recursive输出清理后的数据,但我很难将数据作为与输入数据结构相同的数组返回。有人能帮忙吗?非常感谢您的帮助

这是我的密码:

function process_data($input){
    function clean_up_data($item, $key)
    {
        echo strip_tags($item) . ' '; // This works and outputs all the cleaned data
        $key = strip_tags($item);     // How do I now output as a new array??
        return strip_tags($item);
    }
    array_walk_recursive($input, 'clean_up_data');
}

$array = process_data($array);  // This would be the ideal usage
print_r($array);  // Currently this outputs nothing

您需要通过引用传递该值

function clean_up_data(&$item, $key)

您需要通过引用传递该值

function clean_up_data(&$item, $key)
您可以像这样使用array\u walk\u recursive:

<?php
$arr = array(...);
function clean_all($item,$key)
{
$item = strip_tags($item);
}
array_walk_recursive($arr , 'clean_all');
?>
或:

这是一个递归函数,我认为它解决了您的问题:

<?php
    function clean_all($arr)
    {
    foreach($arr as $key=>$value)
    {
       if(is_array($value)) $arr[$key] = clean_all($value);
       else  $arr[$key] = strip_tags($value);
    }
    return $arr;
    }

     ?>
您可以像这样使用array\u walk\u recursive:

<?php
$arr = array(...);
function clean_all($item,$key)
{
$item = strip_tags($item);
}
array_walk_recursive($arr , 'clean_all');
?>
或:

这是一个递归函数,我认为它解决了您的问题:

<?php
    function clean_all($arr)
    {
    foreach($arr as $key=>$value)
    {
       if(is_array($value)) $arr[$key] = clean_all($value);
       else  $arr[$key] = strip_tags($value);
    }
    return $arr;
    }

     ?>

是否要返回包含所有$keys的数组而不是多维数组?有一个很好的例子供您学习。不在可调用函数中包装函数定义,只在回调中使用&$item、&$key如何。这就是引用可能证明的地方useful@djot我想返回与输入的多维结构相同的数组。所有的功能都是清理数据…谢谢@Alireza Fallah问题现在解决了!是否要返回包含所有$keys的数组而不是多维数组?有一个很好的例子供您学习。不在可调用函数中包装函数定义,只在回调中使用&$item、&$key如何。这就是引用可能证明的地方useful@djot我想返回与输入的多维结构相同的数组。所有的功能都是清理数据…谢谢@Alireza Fallah问题现在解决了!