4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【PHP】連想配列に代入した値を使って文字を置換する

Last updated at Posted at 2020-03-19

入力した文字列の中から任意の文字を置換したくて、for文使ったりforeach使ってみたりして数時間うんうん悩んでたけど、strtr()関数に配列突っ込んだら解決したっていうメモ。

##なんやそれ?

str_replace — 検索文字列に一致したすべての文字列を置換する

とのこと。
参考: PHP: strtr - Manual

引数
strtr($検索する文字列, $対象文字列, $置換する文字列);

引数に連想配列を渡すこともできる。
$keyが対象文字列、$valueが置換する文字列になる。

引数に連想配列を渡す
$s = 'AI';
$ary = ['A' => 1];

echo strtr($s, $ary);

//実行結果
1I

##実装

<?php
$str = 'PIZZA EAT PIZZA';
$words = [
    'A' => 4,
    'E'	=> 3,
    'G'	=> 6,
    'I'	=> 1,
    'O'	=> 0,
    'S'	=> 5,
    'Z'	=> 2,
    ];

echo $str."\n";
echo strtr($str, $words);


//実行結果
PIZZA EAT PIZZA
P1224 34T P1224

##おわり
str_replace()ちゅーものもあるみたい。パラメータが多くて便利そうだけど、使うときに注意が必要っぽい。
参考1: PHP: str_replace - Manual
参考2: str_replaceとstrtrの違いって何なのさ

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?