Ucfirst после запятого значения

У меня есть значение как admin,bli

Я использовал этот код, чтобы заглавные буквы

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

И мой результат Admin,bli

Мой ожидаемый результат

Admin,Bli

Как я могу добиться этого без использования функции разнесения и цикла for?

1

Решение

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

Взрыв через запятую, карта ucfirst каждый предмет, использующий array_map и взорвать его обратно join или же implode,

Я знаю, что вы хотели бы избежать взрыва, но это, вероятно, быстрее, чем preg_replace_callback тем не мение.

4

Другие решения

Ты можешь использовать 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);
});
1

По вопросам рекламы [email protected]