用数组中的空格和大写第一个字符替换下划线

时间:2015-04-02 05:44:46

标签: php arrays

我有以下数组。

$state = array("gujarat","andhra_pradesh","madhya_pradesh","uttar_pradesh");

预期输出

$state = array("Gujarat","Andhra Pradesh","Madhya Pradesh","Uttar Pradesh");

我希望使用UpperCase将单词的每个第一个字符转换为数组值,并将 _ 替换为 space 。所以我使用这个循环并按预期工作。

foreach($states as &$state)
 {
    $state = str_replace("_"," ",$state);
    $state = ucwords($state);
 }

但我的问题是:是否有任何PHP函数可以根据我的要求转换整个数组?

4 个答案:

答案 0 :(得分:21)

您可以使用array_map功能。

function modify($str) {
    return ucwords(str_replace("_", " ", $str));
}

然后在上面使用上述功能如下:

$states=array_map("modify", $old_states)

答案 1 :(得分:4)

需要像

一样使用array_map功能
$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 )

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

使用array_map()功能

<?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);
?>