ホームページ  >  記事  >  バックエンド開発  >  PHP は配列を使用して文字列内の一致する項目を順番に置き換えます。php 配列は文字列を置き換えます_PHP チュートリアル

PHP は配列を使用して文字列内の一致する項目を順番に置き換えます。php 配列は文字列を置き換えます_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:01:121025ブラウズ

PHP は配列を使用して文字列内の一致する項目を順番に置き換え、PHP 配列が文字列を置き換えます

まず SQL ステートメントを見てみましょう:

リーリー

上記の SQL ステートメントの角括弧で示されている日付を、以下の配列の要素に置き換えたいと考えています: array('2015-07-01','2015-07-15');

通常のマッチングを使用します: 最初の角括弧部分を見つけて最初の要素に置き換え、次に 2 番目の角括弧部分を見つけて再度置き換えます

sprintf関数を使用: 日付は計算されているので、順番に置き換えるだけです。

マークダウンで正規表現を書くのが面倒なので写真だけ載せておきます

追記: SQL で置き換える必要がある time 条件が 1 つだけある場合、それを

に変更する必要があると想像してください。 リーリー

率直に言うと、sprintf 関数が 2 番目のパラメーターが配列であることをサポートしていれば素晴らしいでしょう。いくつか調査した結果、確かに解決策がありました:

call_user_func_array() 公式の説明は次のとおりです:

call_user_func_array — コールバック関数を呼び出し、コールバック関数のパラメータとして配列パラメータを渡します

リーリー

最初のパラメータをコールバック関数 (callback) として呼び出し、コールバック関数のパラメータとしてパラメータ配列 (param_arr) を渡します。

つまり、最初のパラメータは使用する関数の名前 (上記の sprintf)、2 番目のパラメータは使用する関数のパラメータですが、パラメータは次の形式で call_user_func_arrayok に渡されます。この場合、動的置換を実現できます

リーリー

次に、str_replace — 部分文字列置換、配列置換を紹介します

手順

リーリー

この関数は文字列または配列を返します。この文字列または配列は、件名のすべての検索を replace で置き換えた結果です。

特別な置換要件 (正規表現など) がある場合は、この関数を使用して ereg_replace() と preg_replace() を置換する必要があります。

パラメータ

検索と置換が配列の場合、str_replace() はサブジェクトのマッピング置換を実行します。置換値の数が検索値の数より少ない場合は、空の文字列を使用して追加の置換が実行されます。 search が配列で replace が文字列の場合、検索での各要素の置換には常にこの文字列が使用されます。この変換では大文字と小文字は変わりません。
検索と置換が両方とも配列の場合、それらの値は順番に処理されます。

検索

見つける目標値、つまり針です。配列では複数のターゲットを指定できます。

交換

検索用の置換値。配列を使用して複数の置換を指定できます。

件名

置換を実行する配列または文字列。それが干し草の山です。

サブジェクトが配列の場合、置換操作はサブジェクト全体をスキャンし、戻り値も配列になります。

カウント

注: 指定すると、一致と置換の数が制御されます。

戻り値

この関数は、置換された配列または文字列を返します。

バージョンの説明

5.0.0ではcountパラメータが追加されました。

4.3.3 関数の動作が変更されます。古いバージョンにはバグがあります。検索と置換の両方のパラメータが配列の場合、空の検索インデックスはスキップされますが、置換の内部ポインタは同時に進められません。このエラーはPHPで発生します

4.3.3、このバグに依存するスクリプトは、最初に空のルックアップ値を削除して、元の動作をシミュレートする必要があります。

4.0.5 ほとんどのパラメータは配列にすることができます。


例 #1 str_replace() の基本的な例

リーリー

例 #2 可能な str_replace() 置換例

リーリー

メモ

注: この関数はバイナリ オブジェクトに対して安全に使用できます。

注意

交代順序を理解する

str_replace()は左から右に置換されるため、複数の置換を行うと以前に挿入した値が置換される可能性があります。例については、このドキュメントを参照してください。

注:

この関数では大文字と小文字が区別されます。 str_ireplace() を使用すると、大文字と小文字を区別しない置換が可能です。

興味があるかもしれない記事:

  • php 文字列を大文字で区切って文字列配列にする
  • 1 次元または多次元の配列を文字列に連結する php コード
  • PHP はカンマ、スペース、キャリッジリターンを区切る 変換する関数区切り文字列を配列に変換する
  • 配列と文字列を相互に変換するPHP実装方法
  • PHPの一般的な関数(配列、文字列、時間、ファイル操作)のまとめを元に
  • PHPにおける配列と文字列間の変換関数のまとめ
  • phpの関数コードを使用して、配列を文字列に変換し、データベースに保存します
  • phpのexplode関数を使用して、文字列を配列に分割します
  • php 2次元配列を文字列に変換する例配列要素が配列内にあるかどうかを判断する
  • php 特定の文字列に対するメソッドがあります
  • phpメソッドで文字列をランダムに異なる長さの配列に分割します
  • PHPメソッドで多次元配列を文字列に変換し、多次元配列に変換します次元配列から一次元配列へ

www.bkjia.com本当http://www.bkjia.com/PHPjc/1089949.html技術記事 PHP は配列を使用して、文字列内の一致する項目を順番に置き換えます。文字列を PHP 配列に置き換える SQL ステートメントを見てみましょう。 select * from table where ctime = '[date-14]' および ctime = '[date] -1]'; 私は以上にしたいです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。