逗号分隔值后的 ucfirst
ucfirst after comma separated value
我的值像 admin,bli
我用这个代码把首字母大写了
<?php ucfirst('admin,bli'); ?>
我的结果是Admin,bli
我的预期输出是
Admin,Bli
如何在不使用 explode 函数和 for 循环的情况下实现这一点?
<?php
echo join(',', array_map('ucfirst', explode(',', 'bill,jim')));
?>
按逗号分解,使用 array_map
映射 ucfirst
每个项目,然后按 join
或 implode
.
将其分解回来
我知道你想避免爆炸,但无论如何它可能比 preg_replace_callback
快。
您可以使用 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);
});
我的值像 admin,bli
我用这个代码把首字母大写了
<?php ucfirst('admin,bli'); ?>
我的结果是Admin,bli
我的预期输出是
Admin,Bli
如何在不使用 explode 函数和 for 循环的情况下实现这一点?
<?php
echo join(',', array_map('ucfirst', explode(',', 'bill,jim')));
?>
按逗号分解,使用 array_map
映射 ucfirst
每个项目,然后按 join
或 implode
.
我知道你想避免爆炸,但无论如何它可能比 preg_replace_callback
快。
您可以使用 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);
});