PHPで文字列をスペースで区切って配列に変換するテクニック
作成日:2025.02.09
PHPでキーワード検索を実装する際などに、文字列をスペースで区切って配列に変換する方法を解説します。全角スペースの変換や空要素の削除についても詳しく説明します。
error この記事は最終更新日から1年以上が経過しています。
PHPでキーワード検索の処理を実装する際などに、ユーザーが入力したキーワードの値をスペースで区切って配列に入れて処理したい、みたいな時のメモ。
// ユーザーの入力したキーワード文字列(事前にXSS対策などをしておくこと)
$query = 'PHP JavaScript CSS';
// 全角スペースを半角スペースに変換
$query = mb_convert_kana($query, 's');
// スペースで区切って配列に入れる
$keywords = explode(' ', $query);
// ユーザーの入力したキーワードにスペースが連続している場合は空要素ができるので削除
$keywords = array_filter($keywords, 'strlen');
上記のコードを実行すると、$keywords には以下のような配列が入る。
array(3) {
[0]=>
string(3) "PHP"
[1]=>
string(10) "JavaScript"
[2]=>
string(3) "CSS"
}
- mb_convert_kana
- 全角かなと半角かなを変換する関数。第二引数に
's'を指定すると、全角スペースを半角スペースに変換する。 - explode
- 文字列を指定した区切り文字で分割して配列に入れる関数。第一引数に区切り文字、第二引数に分割する文字列を指定する。
- array_filter
- 配列の要素をコールバック関数でフィルタリングする関数。第一引数に配列、第二引数にコールバック関数を指定する。ここでは
strlen関数を指定しているので、空文字列以外の要素だけを残す。 - strlen
- 文字列の長さを返す関数。ここでは
array_filterで使うためにコールバック関数として指定している。
奈良市を拠点に、27年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。
これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。
【制作会社・企業様向けサポート】
Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。
ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。
Laravelのコードレビューで遅いSQLの候補を洗い出す
2026.10.02
Laravelのコードレビューで、ループ内のDBアクセスやEloquentのN+1、大量取得、検索条件とインデックスなど、性能問題につながりやすい箇所を候補として洗い出します。Laravelで発行SQLと実行時間を確認し、MySQLのEXPLAINや実データに近い環境での計測へつなげる方法を紹介します。コードレビューだけではSQLの実行時間を断定できない点も説明します。
Windows 11でDocker Composeを使ってLaravel環境を作る:Container・Volume・Networkの基本
2026.10.01
Windows 11のDocker Desktop上に、DockerfileとDocker Composeを使ってLaravel・PHP・MySQL・Mailpitの開発環境を構築します。ImageとContainerの関係、Bind MountとNamed Volumeによるデータの保存、ポート公開とContainer間通信の違いを実例で確認。LaravelからMySQLへ接続するときに、localhostではなくService名を使う理由も説明します。
PHPでYAML設定を検証する:symfony/yamlとopis/json-schemaの使い方
2026.09.30
symfony/yamlでYAMLを読み込み、opis/json-schemaで必須項目や型、許可する値を検証する方法を紹介します。YAMLのマップをstdClassとして扱う方法や、空のobjectとarrayの違い、信頼できないYAMLを扱う際の注意点も解説します。
PHPの正規表現で日本語・改行を扱う:u・m・s修飾子の違い
2026.09.29
PHPの正規表現で日本語や複数行テキストを扱う際の、u・m・s修飾子の違いを解説します。Unicode文字クラスと全角数字、CRLFの行末処理、\A・\zの使い方、Unicode正規化との違いを、PHP 8.3.15・PCRE2 10.42で確認したコード例とともに紹介します。