PHPで特定の値を基準に文字列を分割・抽出する方法|preg_match_all()の使い方
文字列を特定の値(キーワード)を基準に分割したい場合は、preg_match_all() 関数を使用します。この関数は、指定した正規表現パターンに一致するすべての箇所を配列として抽出できるため、区切り文字ではなく「取り出したい語句」があらかじめ決まっているケースに特に便利です。
ここでは、次のように複数の単語が連結された文字列を例に考えます。
$values = 'javamysqlphpmongodbpythonspringhibernatephp';
この文字列から、以下の3つのキーワードを抜き出して分割することを目指します。
java
hibernate
php
サンプルコード
PHPコードは以下のとおりです。正規表現 /(java|hibernate|php)/ をパターンとして渡し、一致したすべてのキーワードを取得しています。
<!DOCTYPE html>
<html>
<body>
<?php
$values = 'javamysqlphpmongodbpythonspringhibernatephp';
$afterSpliting = preg_match_all("/(java|hibernate|php)/", $values, $result);
print_r($result);
?>
</body>
</html>
実行結果
このコードを実行すると、次のような出力が得られます。
Array (
[0] => Array
(
[0] => java
[1] => php
[2] => hibernate
[3] => php
)
[1] => Array
(
[0] => java
[1] => php
[2] => hibernate
[3] => php
)
)
解説のポイント
- 戻り値: preg_match_all() は、マッチした件数(この例では4件)を返します。
- [0] の配列: パターン全体に一致した文字列が格納されます。
- [1] の配列: 最初のキャプチャグループ(括弧内の java|hibernate|php)に一致した部分が格納されます。
なお、逆に「区切りとなる文字や記号」が明確な場合は、preg_split() を使うとよりシンプルに分割できます。目的に応じて両者を使い分けるとよいでしょう。
-
MongoDBで特定の文字列を使ってフィールドのすべての値を一括更新する方法
MongoDBでフィールドのすべての値を一括更新する方法MongoDBのコレクション内に存在するすべてのドキュメントの特定フィールドを、同じ文字列でまとめて更新したい場合があります。そのようなときは、update()メソッドにオプション「multi: true」を指定します。この記事では、実際のコマンド例をもとに、手順をわかりやすく解説します。1. サンプルコレクションの作成まずはinsertOne()メソッドを使って、テスト用コレクション「demo720」に複数のドキュメントを挿入します。> db.demo720.insertOne({SubjectName:MySQL}); {
-
PHPとMySQLでブール値を扱うには?BOOL・BOOLEAN・TINYINT(1)の違いと使い方
本記事では、MySQL 8.0.12を使用して、ブール(Boolean)値の正しい取り扱い方を解説します。まず、使用しているMySQLのバージョンを確認しておきましょう。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec) MySQLにおけるブール値の基本:BOOL・BOOLEAN・TINYINT(1) MySQLでブール値を扱うには、BOOL、BOOLEAN、またはTINYINT(1)のいずれかを使用