Php 将下划线替换为空格和数组中第一个大写字符

Php 将下划线替换为空格和数组中第一个大写字符,php,arrays,Php,Arrays,我有以下数组 $state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh"); 预期产出 $state = array("Gujarat","Andhra Pradesh","Madhya Pradesh","Uttar Pradesh"); 我想用大写的单词的第一个字符转换数组值,并用空格替换。所以我用这个循环来做,它按预期工作 foreach($states as &$state) {

我有以下数组

$state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh");
预期产出

$state = array("Gujarat","Andhra Pradesh","Madhya Pradesh","Uttar Pradesh");
我想用
大写的单词的第一个字符转换数组值,并用空格替换。所以我用这个循环来做,它按预期工作

foreach($states as &$state)
 {
    $state = str_replace("_"," ",$state);
    $state = ucwords($state);
 }
但我的问题是:是否有任何PHP函数可以根据我的要求转换整个数组?

可以对数组的每个元素应用回调方法:

$state = array_map('makePretty', $state);

function makePretty($value) 
{
    $value= str_replace("_"," ",$value);
    return ucwords($value);
}

您可以使用
array\u map
功能

function modify($str) {
    return ucwords(str_replace("_", " ", $str));
}
然后,只需按如下方式使用上述功能:

$states=array_map("modify", $old_states)
使用
数组映射()
函数

<?php
    function fun($s)
    {
        $val = str_replace("_"," ",$s);
        return ucwords($val);
    }
    $state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh");
    $result = array_map('fun',$state);
    print_r($result);
?>

需要使用
数组映射
函数,如

$state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh");
$state = array_map(upper, $state);
function upper($state){
    return str_replace('_', ' ', ucwords($state));
}
print_r($state);// output Array ( [0] => Gujarat [1] => Andhra pradesh [2] => Madhya pradesh [3] => Uttar pradesh )

创建字符串替换函数,数组映射是另一种方法。你说它工作得很好,为什么要更改?@Ghost It working find with
foreach
循环,但是我想
short
代码来实现它好的,当然,下面的答案应该足够了你的代码也
short
sweet
,但是你迟到了。谢谢你喜欢这就够了。。快乐的编码实现了我的目的。但是你知道如何在Codeigniter OOPS的控制器中使用它吗$这个->函数名()?