ホームページ >バックエンド開発 >PHPチュートリアル >PHP `print_r()` 文字列出力を配列に変換して戻す方法

PHP `print_r()` 文字列出力を配列に変換して戻す方法

DDD
DDDオリジナル
2024-12-02 19:16:16740ブラウズ

How to Convert a PHP `print_r()` String Output Back into an Array?

配列の文字列表現を配列に変換する方法

PHP で print_r() を使用して配列を出力する場合、それを視覚的にフォーマットされた文字列に変換します。この文字列形式はデバッグには便利ですが、配列に直接変換して戻すことはできません。ただし、カスタム解析ロジックを使用すると、元の配列を再作成することができます。

この変換に取り組むために、カスタム関数 text_to_array() が開発されました。この関数は次のように動作します。

文字列の解析:

  • この関数は、まず、指定された文字列が「Array」で始まるかどうかを確認し、それが配列を表していることを示します。
  • 括弧で囲まれた配列の内容が抽出されます。
  • 区切り文字([、]、および =>) は、解析を容易にするためにプレースホルダー文字 (#!# および #?#) に置き換えられます。
  • 変更された配列の内容は、#!# 区切り文字で個々のフィールドに分割されます。 .

新しいものを作成する配列:

  • 各フィールドでは、#?# 区切り文字を使用してキーと値を区切ります。
  • キーが空でない場合は、キーを追加します。値ペアを新しい配列に追加します。

例使用法:

次の配列について考えます:

$a = ['foo' => 'fooMe'];

print_r() を使用して文字列に変換すると、次の結果が得られます:

Array ( [foo] => fooMe )

これを渡す文字列を text_to_array() 関数に渡すと、元の結果が得られますarray:

$b = text_to_array('Array ( [foo] => fooMe )');
print_r($b);

この出力:

Array
(
    [foo] => fooMe
)

このカスタム解析ロジックを実装すると、出力された文字列表現から配列を再作成でき、デバッグ後でも配列の機能を復元できます。 .

以上がPHP `print_r()` 文字列出力を配列に変換して戻す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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