2012-02-14 117 views
0

有没有人知道最快的方式在每个方向做转换?如果你想知道它的速度更快以连字符分隔的CamelCase和CamelCase以连字符分隔

$Hstring = 'hello-world'; 
$CCstring = implode('', array_map('ucwords', explode('-', $Hstring))); 
+6

你是否经常在脚本中这么做,速度真的很重要? (喜欢几万次) – 2012-02-14 12:14:25

+0

不是很常见(70-80次),但我想最佳解决方案:) – thelolcat 2012-02-14 12:15:12

+0

最佳解决方案是预先计算解决方案,以便不再有问题 – Flexo 2012-02-14 12:59:10

回答

1

我刚刚发布的包,它正是这么做的:https://github.com/sebastiansulinski/string-converter

您也可以与packagist拉出。

希望它有帮助。

+0

好吧,但很s u,你必须停止编写像这些symfony时尚人士的代码。整个事情可能只是一个具有几个功能的类 – thelolcat 2015-03-25 16:47:49

+0

以这种方式构建包并遵循设计模式有一个很好的理由。 – 2015-03-26 17:43:50

3
$subject = 'abc-def-xyz'; 
$results = preg_replace_callback ('/-(.)/', create_function('$matches','return strtoupper($matches[1]);'), $subject); 

var_dump($results); 

$subject = 'abcDefXyz'; 
$results = preg_replace_callback ('/([A-Z])/', create_function('$matches','return \'-\' . strtolower($matches[1]);'), $subject); 

var_dump($results); 

编辑

目前我使用这对于连字符到驼峰,您需要对其进行配置以确定

+0

秒产生“ -camel-case“从”CamelCase“中删除。 “StringXML”中的“-string-x-m-l”。我建议'/.+([A-Z] +)/'代替。 upvote当修复 – Kaii 2012-02-14 18:18:44