(2024年10月)
置換対象を配列
str_replace(文字列置換)の第三引数(置換対象)は、配列でも有効。
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
print_r($array) ;
Array
(
[0] => aaa_001
[1] => aaa_002
[2] => aaa_003
)
$array = str_replace(“a”,”b”,$array) ;// 「a」を「b」にする
print_r($array) ;
Array
(
[0] => bbb_001
[1] => bbb_002
[2] => bbb_003
)
置換前後を配列
str_replaceの第一/第二引数(置換前/後)も、配列にできる。
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
Array
(
[0] => aaa_001
[1] => aaa_002
[2] => aaa_003
)
$search = [“a”,”b”] ;
$replace = [“b”,”c”] ;
$array = str_replace($search,$replace,$array) ;
print_r($array) ;
Array
(
[0] => ccc_001
[1] => ccc_002
[2] => ccc_003
)
コレは、「a」を「b」にして、その後、「b」を「c」にするというコトである。
結果として、「a」が「c」になる。
「後(アト/阿斗)」がなければ、その箇所は消えてしまう。
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
$search = [“a”,”b”] ;
$replace = [“b”] ;
$array = str_replace($search,$replace,$array) ;
print_r($array) ;
Array
(
[0] => _001
[1] => _002
[2] => _003
)
「a」を「b」にした後、「b」の対応がないので、結果として「b」は消えるとゆぅコトね。
-----
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
$search = [“a”,”_”,”0″] ;
$replace = [] ;
$array = str_replace($search,$replace,$array) ;
print_r($array) ;
Array
(
[0] => 1
[1] => 2
[2] => 3
)
「a」も「_(安駄婆)」も「0」も消えるとゆぅコトね。
いくつかの文字を消すタメに、str_replaceを繰り返してティマ々ヤルよりは楽。
対応の明瞭化
ただ、前後の数が増えると、何が何ヤラで意味不明となる。
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
$search = [“a”,”0″,”1″,”_”,”2″] ;
$replace = [“b”,”1″,”*”,”@”,”5″] ;
$array = str_replace($search,$replace,$array) ;
print_r($array) ;
Array
(
[0] => bbb@***
[1] => bbb@**5
[2] => bbb@**3
)
なので、連想配列で対応付けを行うと分かり易い。
$array = [“aaa_001″,”aaa_002″,”aaa_003”] ;
$taiou = [
“a” => “b”,
“0” => “1”,
“1” => “*”,
“_” => “@”,
“2” => “5”
] ;
$search = array_keys($taiou) ;// array_keys:配列のキー(今回は場合は「前」)を返す
$replace = array_values($taiou) ;// array_values:配列の値(今回は場合は「後」)を返す
$array = str_replace($search,$replace,$array) ;
print_r($array) ;
Array
(
[0] => bbb@***
[1] => bbb@**5
[2] => bbb@**3
)
まとめ
$rohjin = [“菅(75)”,”森山(79)”,”麻生(84)”,”鈴木(71)”] ;// 老人議員
$search = [“菅”,”森山”,”麻生”,”鈴木”] ;// 排除リスト
$replace = [] ;
$gomi = str_replace($search,$replace,$rohjin) ;
$gomi = preg_replace(“/[0-9]+/”,””,$gomi) ;// 数字を削除
$gomi = preg_replace(“/\(|\)/”,””,$gomi) ;// 括弧はエスケープが必要
$gomi[0] = “小泉退次郎(43)” ;// ニューリーダー(笑)
$gomi = array_filter($gomi) ;// 残骸を除去
print_r($gomi) ;
Array
(
[0] => 小泉退次郎(43)
)
unset($gomi[0]) ;// 学力不足につき排除
$gomi[] = “小泉不純郎(82)” ;
$gomi[] = “ケケ中平蔵(73)” ;
print_r($gomi) ;
Array
(
[1] => 小泉不純郎(82)
[2] => ケケ中平蔵(73)
)
ウシナワレタ惨拾年wwwwwwwwww
関連:[PHP] 添字配列や連想配列に要素を追加する方法 [array_push,array_merge]
関連:[PHP] 小数点以下の末尾の0を表示する [sprintf,number_format]
関連:[PHP] 秒を時分秒に変換する方法 [gmdateは危険]
関連:[PHP] checkdateが意味不明杉流件 [クヅォ]