用 解码 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;
}