2015-11-19 41 views
0

如何將這種類型的PHP字符串轉換爲駱駝大小寫?Camelize一個PHP字符串

$string = primary-getallgroups-sys 

我試過了,但剛剛發現不同的解決方案,用空格字符串。像ucword($字符串),但它只是大寫的第一個字。當我添加連字符( - )的分隔符時,它會給出錯誤。

+1

顯示您現有的代碼,你會得到錯誤,再加上你想要的輸出爲您的示例字符串 – Steve

+0

我只是想將這個字符串轉換爲一個字符串,如 $ string = Primary-Getallgroups-sys 它只是在將一個分隔符傳遞給它後給出空白頁。 $ string = primary-getallgroups-sys $ string = ucwords($ string); // Primary-getallgroups-sys 如果我使用類似 的分隔符$ string = primary-getallgroups-sys $ string = ucwords($ string,「 - 」); //什麼都不顯示 –

回答

1
$string = 'primary-getallgroups-sys'; 

// split string by '-' 
$words = explode('-', $string); 

// make a strings first character uppercase 
$words = array_map('ucfirst', $words); 

// join array elements with '-' 
$string = implode('-', $words); 

echo $string; // is now Primary-Getallgroups-Sys 
+0

Thanku。 Plus是否有任何方法將「getallgroups」轉換爲像「GetAllGroups」這樣的駱駝案例? –

+0

無法將'getallgroups'轉換爲駱駝大小寫。由於代碼無法區分英文單詞。你需要指定它必須破壞的地方。 –

+0

正確@AshishChoudhary –

1

您可以創建一個函數將這些類型的字符串轉換爲駱駝情況。

試試這個:

<?php 
// CONVERT STRING TO CAMEL CASE SEPARATED BY A DELIMITER 
function convertToCamel($str, $delim){ 
    $exploded_str = explode($delim, $str); 
    $exploded_str_camel = array_map('ucwords', $exploded_str); 
    return implode($delim, $exploded_str_camel); 
} 

$string = 'primary-getallgroups-sys'; 

echo convertToCamel($string, '-'); // Answer 

?> 
1

其實駱駝情況下更是這樣的:iAmCamelCased

而這是大小寫混合的情況:IAmMixedCased

@ sundas-mushtaq另請注意,如果連字符用於符號名稱(如函數或變量中),連字符將破壞您的代碼。

要camelize,使用此:

function camelize($word, $delimiter){ 
    $elements = explode($delimiter, $word); 

    for ($i = 0; $i < count($elements); $i++) { 
     if (0 == $i) { 
      $elements[$i] = strtolower($elements[$i]); 
     } else { 
      $elements[$i] = strtolower($elements[$i]); 
      $elements[$i] = ucwords($elements[$i]); 
     } 
    } 

    return implode('', $elements); 
} 

而對於mixify,使用此:

function mixify($word, $delimiter){ 
    $word = strtolower($word); 
    $word = ucwords($word, $delimiter); 

    return str_replace($delimiter, '', $word); 
} 
相關問題