Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用空格替换下划线_Javascript_Php_Regex - Fatal编程技术网

Javascript 用空格替换下划线

Javascript 用空格替换下划线,javascript,php,regex,Javascript,Php,Regex,我想在数组中搜索并将所有出现的下划线替换为空格,然后用新行字符将该数组内爆为字符串 但是,我在替换数组中的下划线时遇到了困难 这是我的代码: $array = array('this_that','is','an','array'); function fixArrayKey(&$arr) { $arr=array_combine(array_map(function($str){return str_replace("_"," ",$str);},array_keys($

我想在数组中搜索并将所有出现的下划线替换为空格,然后用新行字符将该数组内爆为字符串

但是,我在替换数组中的下划线时遇到了困难

这是我的代码:

$array = array('this_that','is','an','array');



function fixArrayKey(&$arr)
{
    $arr=array_combine(array_map(function($str){return str_replace("_"," ",$str);},array_keys($arr)),array_values($arr));
    foreach($arr as $key=>$val)
    {
        if(is_array($val)) fixArrayKey($arr[$key]);
    }
}

fixArrayKey($array);
print_r($array);
编辑1:

$array = array('this_that','is','an','array');



function fixArrayKey(&$arr)
{
    $arr=array_combine(array_map(function($str){return str_replace("_"," ",$str);},array_keys($arr)),array_values($arr));
    foreach($arr as $key=>$val)
    {
        if(is_array($val)) fixArrayKey($arr[$key]);
    }
}

fixArrayKey($array);
print_r($array);
我还想搜索
true
的所有条目,并将其替换为同一数组中的
YES
,这一目标的最佳解决方案是什么。

尝试以下方法:

$array = array('this_that','is','an','array true');

function fixArrayKey(&$arr)
{
    $arr=array_combine(array_keys($arr),array_map(function($str){return str_replace(Array('true','_'),Array('YES',' '),$str);},array_values($arr)));
    foreach($arr as $key=>$val)
    {
        if(is_array($val)) fixArrayKey($arr[$key]);
    }
return $arr;
}

fixArrayKey($array);
print_r($array); 

echo implode("\n",$array);
我建议使用


漂亮干净的解决方案+1对于这样的工作,
array\u walk\u recursive
在这里是过分的:你可以用
array\u map
做同样的事情,除非你真的需要嵌套arrays@Andreaop的代码是递归的,所以我假设这就是我们想要的,但是如果您不需要递归,那么
array\u map
就足够了。这段代码专门用于修复下划线在数组的键中找到,而不是值。