将连字符分隔的字符串转换为驼峰命名法?
例如:
abc-def-xyz
到 abcDefXyz
the-fooo
到 theFooo
等。
什么是最有效的方法做这个PHP?
这是我的看法:
$parts = explode('-', $string);
$new_string = '';
foreach($parts as $part)
$new_string .= ucfirst($part);
$new_string = lcfirst($new_string);
但我有一种感觉,可以用更少的代码来完成:)
ps:祝大家节日快乐! :D
For example:
abc-def-xyz
to abcDefXyz
the-fooo
to theFooo
etc.
What's the most efficient way to do this PHP?
Here's my take:
$parts = explode('-', $string);
$new_string = '';
foreach($parts as $part)
$new_string .= ucfirst($part);
$new_string = lcfirst($new_string);
But i have a feeling that it can be done with much less code :)
ps: Happy Holidays to everyone !! :D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可能需要将第一行替换为
$parts =explode('-', strtolower($string));
以防有人在连字符分隔的字符串中使用大写字符。You might want to replace the first line with
$parts = explode('-', strtolower($string));
in case someone uses uppercase characters in the hyphen-delimited string though.如果有效,为什么不使用它呢?除非您正在解析大量文本,否则您可能不会注意到其中的差异。
我唯一看到的是,使用您的代码,第一个字母也会大写,所以也许您可以添加以下内容:
If that works, why not use it? Unless you're parsing a ginormous amount of text you probably won't notice the difference.
The only thing I see is that with your code the first letter is going to get capitalized too, so maybe you could add this:
ucwords
接受单词分隔符作为第二个参数,因此我们只需要传递一个连字符,然后使用lcfirst
小写第一个字母,最后使用str_replace 删除所有连字符
。ucwords
accepts a word separator as a second parameter, so we only need to pass an hyphen and then lowercase the first letter withlcfirst
and finally remove all hyphens withstr_replace
.