У меня есть значение как admin,bli
Я использовал этот код, чтобы заглавные буквы
<?php ucfirst('admin,bli'); ?>
И мой результат Admin,bli
Мой ожидаемый результат
Admin,Bli
Как я могу добиться этого без использования функции разнесения и цикла for?
<?php
echo join(',', array_map('ucfirst', explode(',', 'bill,jim')));
?>
Взрыв через запятую, карта ucfirst
каждый предмет, использующий array_map
и взорвать его обратно 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);
});