2012-02-14 108 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