を使用して PHP で JSON をデコードするとjson_decode()
、含まれるすべての配列が PHP 配列になります。例えば:
$data = json_decode(
'{ "fav_color" : [ "red", "green", "blue" ] }',
TRUE
);
var_export( $data );
// Outputs:
array (
'fav_color' =>
array (
0 => 'red',
1 => 'green',
2 => 'blue',
),
)
これにより、PHP の配列にアクセスできるようになります。そのデータで目的を達成するために実行する必要があるクエリがわかりません。
組み合わせ
次に、渡された各静的要素を使用して各配列要素を配置するにはどうすればよいでしょうか?
これにはさまざまな方法があります。ここにいくつかあります:
1)
$combinations = array();
foreach ( $data[ 'fav_color' ] as $color ) {
$combination = $data;
$combination[ 'fav_color' ] = $color;
$combinations[] = $combination;
}
2)
フォームからデータを抽出して JSON としてシリアル化する方法はわかりませんが、HTML が次のようになっている場合は...:
<form method="post">
<input type="text" name="static[fname]" value="First" />
<input type="text" name="static[lname]" value="Last" />
<input type="text" name="static[email]" value="Email" />
<select multiple name="fav_color[]">
<option value="red" selected>Red</option>
<option value="green" selected>Green</option>
<option value="blue" selected>Blue</option>
</select>
</form>
...そして、フォームを PHP に送信すると、次のデータ構造が$_POST
:
array(
'static' => array(
'fname' => "First",
'lname' => "Last",
'email' => "Email"
),
'fav_color' => array( 'red', 'green', 'blue' )
)
したがって、#1と同様に、次のことができます。
$combinations = array();
foreach ( $data[ 'fav_color' ] as $color ) {
$combination = $data[ 'static' ];
$combination[ 'fav_color' ] = $color;
$combinations[] = $combination;
}