ホームページ  >  記事  >  バックエンド開発  >  PHP が str_replace を使用して多次元配列を置き換える方法の詳細な説明

PHP が str_replace を使用して多次元配列を置き換える方法の詳細な説明

*文
*文オリジナル
2018-01-02 17:54:012220ブラウズ

PHP で str_replace を使用して多次元配列を置き換える方法は?この記事では、str_replaceを使って多次元配列を置換するPHPの実装方法を中心に紹介し、具体的な例を組み合わせて、PHPの多次元配列の走査・置換操作に関する実装スキルや注意点を比較・分析します。困っている友達が参考になれば幸いです。

この記事の例では、str_replace を使用して PHP で多次元配列を置換する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

PHP では、str_replace を使用して配列内の文字列を置換する場合、それが多次元配列の場合は 1 次元配列のみを置換できます。すべての文字列を置き換えることはできません。そこで、多次元配列の文字列の置換を実現するメソッドを書きました

まず、str_replaceを直接使用して配列の置換をテストしてみましょう

$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
$a = str_replace('#', 'ccc', $a);
var_dump($a);

出力は次のようになることを発見しました:

array (size=2)
 'a' => string 'bdcccc' (length=6)
 'ceshi' =>
  array (size=1)
   'c' =>
    array (size=1)
     'f' => string '#' (length=1)

1 次元配列内の文字列のみが置き換えられ、それ以上の次元の配列は置き換えられません。

関数は多次元配列の文字列置換を実装します

$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
function strReplace(&$array) {
 $array = str_replace('#', 'ccc', $array);
if (is_array($array)) {
  foreach ($array as $key => $val) {
    if (is_array($val)) {
      strReplace($array[$key]);
    }
  }
}
}
strReplace($a);
var_dump($a);

出力は次のとおりです:

array (size=2)
 'a' => string 'bdcccc' (length=6)
 'ceshi' =>
  array (size=1)
   'c' =>
    array (size=1)
     'f' => string 'ccc' (length=3)

多次元配列の文字列置換が実装されていることがわかります

関数strReplaceは配列のアドレスを渡し、文字列を再帰的に置き換えます。もちろん、これは非常に簡単な方法であり、これと同じように実装する方法はたくさんあります。

関連する推奨事項:

PHP関数学習の簡単なまとめ_PHPチュートリアル

PHP再帰関数呼び出しの説明

php文字列関数

以上がPHP が str_replace を使用して多次元配列を置き換える方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。