【PHP】ダッシュ区切りの文字列をキャメルケースに変換する方法
PHPでハイフン(ダッシュ)区切りの文字列をキャメルケースに変換する方法を紹介します。正規表現やコールバック関数を使う必要はなく、ucwords 関数だけでシンプルに実装できるのがポイントです。
入力例と出力例
- 入力例:this-is-a-test-string
- 出力例:thisIsATestString
基本的な実装方法
まずは基本となるコードです。ハイフンをスペースに置き換えて ucwords で各単語の先頭を大文字化し、その後スペースを削除することでキャメルケースを作成しています。
function dashToCamelCase($string, $capitalizeFirstCharacter = false) {
$str = str_replace(' ', '', ucwords(str_replace('-', ' ', $string)));
if (!$capitalizeFirstCharacter) {
$str[0] = strtolower($str[0]);
}
return $str;
}
echo dashToCamelCase('this-is-a-string');第2引数の $capitalizeFirstCharacter を true にすると、先頭の文字も大文字になります(パスカルケース)。デフォルトは false なので、通常は先頭が小文字のキャメルケースが返されます。
PHP 5.3以降での簡潔な書き方
PHP 5.3以降では、ucwords の第2引数に区切り文字を直接指定できるため、コードがよりすっきりします。
function dashToCamelCase($string, $capitalizeFirstCharacter = false) {
$str = str_replace('-', '', ucwords($string, '-'));
if (!$capitalizeFirstCharacter) {
$str = lcfirst($str);
}
return $str;
}
echo dashToCamelCase('this-is-a-test-string');ポイント:lcfirst の活用
先頭の1文字だけを小文字にしたい場合は、strtolower の代わりに lcfirst 関数を使います。lcfirst は文字列の最初の1文字のみを小文字化するため、文字列全体に影響を与えず、意図した通りのキャメルケース変換が可能です。
-
PHPの配列をJavaScriptで使う方法|json_encode()による変換手順を解説
PHPで定義した配列は、そのままJavaScriptでも利用することができます。対応範囲は1次元配列にとどまらず、多次元配列(ネストされた配列)にも対応しています。変換を実現する鍵となるのが、PHPの json_encode() 関数です。この関数を使えば、PHPの配列をJSON形式の文字列に変換でき、そのままJavaScriptの変数として扱えるようになります。サンプル:PHPの配列を用意するまず、変換元となるPHPの配列を定義します。ここでは、名前とメールアドレスを持つシンプルな配列を例にします。$myArr = array(Amit, amit@example.com);PHP配列をJa
-
PHP変数「11:00 AM」をMySQLの時間形式に変換する方法
PHPの「11:00 AM」をMySQLの時間形式に変換する方法 MySQLのTIME型やDATETIME型は、時刻を24時間表記の「HH:MM:SS」形式で管理します。そのため、「11:00 AM」のようにAM/PMを含む文字列をデータベースに保存する場合は、事前に形式を変換しておく必要があります。本記事では、PHP標準のDateTimeクラスを使った変換方法を、サンプルコードと実行結果付きで解説します。 変換の基本の流れ DateTime::createFromFormat() … 入力文字列をDateTimeオブジェクトとして解析する format() … 解析結果を「H:i:s」(2