strtr

関数の概要

PHPの strtr 関数は、文字列内の指定した部分を別の文字または文字列に置き換えるための関数です。単一の文字単位での置換と、複数の文字列をまとめて置換する2種類の使い方ができるため、柔軟な文字列操作に便利です。

パラメータの説明

  • string $str:対象となる元の文字列。
  • mixed $from
    • 文字単位置換の場合は置換前の文字列(string)
    • 連想配列で複数の文字列置換を行う場合は、置換前の文字列をキーに持つ配列
  • string|null $to:置換後の文字列。$fromが文字列の場合のみ使用し、連想配列の置換では不要。

戻り値

置換処理が行われた後の新しい文字列を返します。元の文字列は変更されません。

使用例

1. 文字単位での置換

<?php
// 文字単位でAをBに置換する
echo strtr('ABC ABC', 'A', 'B');  // 出力: BBC BBC
?>

文字列中の「A」が「B」に置き換わります。

2. 複数の文字列をまとめて置換(連想配列を使用)

<?php
$replace_pairs = ['Hello' => 'Hi', 'world' => 'everyone'];
echo strtr('Hello world!', $replace_pairs);  // 出力: Hi everyone!
?>

「Hello」と「world」をまとめて別の文字列に置き換えています。部分的な一致ではなく、キーと完全一致した部分だけが置換されます。

3. 部分文字列を優先的に置換

<?php
$replace_pairs = ['ab' => '12', 'a' => '1', 'b' => '2'];
echo strtr('abc', $replace_pairs);  // 出力: 12c
?>

優先度は置換文字列の長さに依存し、長いキー「ab」が優先して置換されるため、「a」や「b」は個別には置換されません。

関連する関数

  • str_replace
  • preg_replace
  • substr_replace
  • str_ireplace

まとめ

strtr は、文字列の特定部分をまとめて置換したいときに効率的に使える関数です。文字単位の置換にも対応しており、用途に応じて使い分けができます。特に複数の違う文字列をまとめて変換したい場合は、連想配列を使うことでシンプルなコードで実装可能です。実務でも文字列の加工やフィルタリング処理に役立つため、是非覚えておきましょう。