本記事では、PHPで文字列・配列内の文字列を置換する方法について解説しています。
PHPの学習におすすめ書籍
独習PHP 第4版
メリット
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
str_replace関数
文字列・配列内の文字列を置換したい場合は、str_replace関数を使用します。基本的な使い方は以下のとおりです。
$result = str_replace($search, $replace, $subject [, &$count]);
構文解説
- $result:置換後の文字列・配列を返す
- $search:置換前の文字列・配列を指定
- $replace:置換後の文字列・配列を指定
- $subject:対象の文字列・配列を指定
- &$count:マッチして置換が行われた回数を変数に保持する(省略可能)
まずは、str_replace関数を使用して文字列を置換するサンプルコードを用意したので、動作確認してみましょう。サンプルコードの内容は、変数$strに代入されている文字列が「しゃ」だけ漢字ではないので「者」に置換します。
<?php
$str = '打しゃ 走しゃ 勝しゃ 走者一掃';
$result = str_replace('しゃ', '者', $str, $count);
echo "置換箇所:{$count}箇所 <br />";
echo "実行結果:{$result}";
/* 実行結果 *
* 置換箇所:3箇所
* 実行結果:打者 走者 勝者 走者一掃
*/
str_replace関数の第一引数に置換前の「しゃ」を指定、第二引数に置換後の「者」を指定、第三引数に対象の文字列である変数$strを指定、第四引数には置換した回数が代入される変数$countを指定しています。
実行結果を確認すると、置換した回数が3回と表示されており変数$strの文字列を確認すると「しゃ」が3回出現しているため正しいことが確認できます。肝心の実行結果は、全て「者」に変換され違和感のない文字列になっていることが確認できます。
続いて、配列内の文字列を置換するサンプルコードも動作確認してみましょう。サンプルコードの内容は文字列の置換とほぼ同じです。
<?php
$arr = ['打しゃ', '走しゃ', '勝しゃ', '走者一掃'];
$result = str_replace('しゃ', '者', $arr, $count);
echo "置換箇所:{$count}箇所 <br />";
print_r($result);
/* 実行結果 *
* 置換箇所:3箇所
* Array ( [0] => 打者 [1] => 走者 [2] => 勝者 [3] => 走者一掃 )
*/
実行結果を確認すると文字列と同様に配列内にある文字列も置換されていることが確認できます。