PHP では、いくつかの関数またはメソッドを使用して、文字列形式の配列を実際の配列変数に簡単に変換できます。この記事では、よく使われるメソッドと関数をいくつか紹介します。
例:
$str = "[1,2,3]"; $array = eval("return $str;"); print_r($array);
上の例では、3 つの要素を含む配列 "[1,2,3]" を文字列変数 $str に代入し、その後 eval を使用します。 () を使用して文字列変数を実行可能コードとして実行し、最後に実際の配列 $array を取得します。print_r() 関数を使用して結果を出力できます。結果は次のようになります。
Array ( [0] => 1 [1] => 2 [2] => 3 )
When the eval( ) 関数 can 配列文字列を配列に変換するのは非常に便利ですが、悪意のあるコードを含む任意のコードを実行する可能性があるため、一定のセキュリティ リスクも伴うため、eval() は推奨されません。
例:
$str = "[1,2,3]"; $array = json_decode($str); print_r($array);
上の例では、json_decode() 関数を使用して文字列変数 $str を配列変数 $array に変換し、最終的に実数を取得します。配列, print_r() 関数を使用して結果を出力できます。結果は次のとおりです:
Array ( [0] => 1 [1] => 2 [2] => 3 )
json_decode() 関数には、オプションのパラメーター $assoc もあります。$assoc パラメーターが true に設定されている場合、返される配列は連想配列、非数値インデックス配列になります。例:
$str = '{"name":"Tom","age":18}'; $array = json_decode($str,true); print_r($array);
上の例では、2 つのキーと値のペア「name」と「age」を含む JSON 文字列「$str」を連想配列「$array」に変換します。結果は次のようになります。
Array ( [name] => Tom [age] => 18 )
したがって、文字列形式の配列を連想配列に変換する必要がある場合は、$assoc パラメーターを true に設定できます。
例:
$str = "1,2,3"; $array = explode(",", $str); print_r($array);
上の例では、explode() 関数を使用して、カンマ区切りの文字列「1,2,3」を配列に変換します。カンマを区切り文字として使用して分割し、最後に実際の配列を取得します。print_r() 関数を使用して結果を出力できます。結果は次のとおりです:
Array ( [0] => 1 [1] => 2 [2] => 3 )
explode() 関数は、区切り文字が固定値の場合にのみ適用されます。固定値の場合、区切り文字が固定されていない場合、または多次元配列を解析する必要がある場合は、他のメソッドを使用する必要があります。
要約すると、上記の 3 つの方法は、文字列形式の配列を実数の配列変数に変換するために使用できます。実際に使用する場合は、状況に応じて適切な方法を選択する必要があります。配列文字列の形式が比較的標準化されており、セキュリティ攻撃の影響を受けない場合、配列文字列の形式が比較的自由である場合、または多次元配列を解析する必要がある場合には、 json_decode() 関数を使用するのが最善です。 、他の方法も使用できます。
以上がPHPで配列文字列を配列に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。