我希望在数组中搜索并将所有下划线替换为空格,然后将此数组内插为带有换行符的字符串。
但是,我在从阵列中替换下划线时遇到了困难。
这是我的代码:
$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:
我还想搜索true
的所有条目,并将其替换为同一数组中的YES
,这个目标的最佳解决方案是什么。
答案 0 :(得分:3)
我建议使用array_walk_recursive
$array = array('this_that','is','an','array');
array_walk_recursive($array,function(&$v){
$v = str_replace('_',' ',$v);
});
print_r($array);
答案 1 :(得分:0)
试试这个:
$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);