Web サイトの開発プロセスでは、データ操作を容易にするために文字列をオブジェクト配列に変換する必要があることがよくあります。 PHP では、この機能を実現するさまざまな方法があり、この記事ではそのうちの 1 つを紹介します。
1. json_decode 関数を使用する
PHP には、JSON 形式の文字列をオブジェクトまたは配列に変換できる json_decode 関数が用意されています。以下は簡単な例です:
<?php $str = '{"name": "Tom", "age": 18}'; $obj = json_decode($str); print_r($obj); ?>
出力は次のとおりです:
stdClass Object ( [name] => Tom [age] => 18 )
ご覧のとおり、json_decode 関数は JSON 文字列を stdClass という名前のオブジェクトに変換します。
これを配列に変換する場合は、以下に示すように、関数に 2 番目のパラメーター true を追加します。
<?php $str = '{"name": "Tom", "age": 18}'; $arr = json_decode($str, true); print_r($arr); ?>
出力結果は次のとおりです。
Array ( [name] => Tom [age] => 18 )
json_decode 関数が JSON 文字列を連想配列に変換していることがわかります。
2. 文字列を行ごとに分割し、配列に変換します
文字列が JSON 形式でない場合は、まず行ごとに分割してから、行ごとに処理できます。以下は簡単な例です:
<?php $str = "Tom,18\nJerry,22\n"; $arr = explode("\n", $str); foreach($arr as $item) { $tmp = explode(",", $item); $result[] = array( "name" => $tmp[0], "age" => $tmp[1] ); } print_r($result); ?>
出力結果は次のとおりです:
Array ( [0] => Array ( [name] => Tom [age] => 18 ) [1] => Array ( [name] => Jerry [age] => 22 ) )
ご覧のとおり、文字列を行ごとに分割した後、行ごとに処理され、次の内容を含むオブジェクトに変換されます。複数のオブジェクトの配列。
3. 正規表現を使用する
文字列形式がより複雑な場合、または文字列に対してより複雑な処理を実行する必要がある場合は、正規表現を使用できます。以下は簡単な例です:
<?php $str = "name=Tom&age=18&gender=male"; preg_match_all("/(\w+)=([^&]+)/", $str, $matches); foreach($matches[1] as $key => $value) { $result[$value] = $matches[2][$key]; } print_r($result); ?>
出力結果は次のとおりです:
Array ( [name] => Tom [age] => 18 [gender] => male )
ご覧のとおり、クエリ文字列は正規表現を使用して連想配列に変換されます。
上記は文字列をオブジェクト配列に変換する 3 つの方法であり、読者は実際の状況に応じて適切な方法を選択できます。
以上がPHP文字列をオブジェクト配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。