ucfirst以逗号分隔后的值

时间:2015-03-18 12:02:39

标签: php ucfirst

我的值为admin,bli

我已使用此代码制作首字母大写

<?php ucfirst('admin,bli'); ?>

我的结果是Admin,bli

我的预期输出是

Admin,Bli

如何在不使用explode函数和for循环的情况下实现此目的?

2 个答案:

答案 0 :(得分:4)

<?php
    echo join(',', array_map('ucfirst', explode(',', 'bill,jim')));
?>

以逗号分解,使用ucfirst将每个项目映射到array_map,并按joinimplode将其内嵌回来。

我知道你想避免爆炸,但它可能比preg_replace_callback更快。

答案 1 :(得分:1)

您可以使用preg_replace_callback()

echo preg_replace_callback("/[^,]*/", function($m) {
    return ucfirst($m[0]); 
}, $str);

模式在单词边界之后搜索较低的套用字母,并用它的大写字母替换它。

另一种方法是使用array_reduce()

echo array_reduce(explode(',', $str), function($a, $b) {
    return $a ? $a . ',' . ucfirst($b) : ucfirst($b);
});