从数组列表中获取表单序列化值

Get form serialize value from the array list

我有一个这样的数组:

Array
(
    [action_name] => edit
    [formData] => color=red&size=full&symmetry=square&symmetry=circle&symmetry=oval
)

这里表单数据是通过JS的serialize方式来的,所以显示如上。我想从 formData 键中获取每个数据。我怎样才能得到它?

我试过了:

$_POST['formData']['color']

但这不起作用。我认为获取它的方法应该有所不同。我该怎么做?

您可以使用 parse_​str 来“ 解析字符串,就好像它是通过 URL 传递的查询字符串一样,并在当前范围内设置变量(或者在数组中,如果结果已提供)。"

<?php
$_POST = [
    'action_name' => 'edit',
    'formData' => 'color=red&size=full&symmetry=square',
];
parse_str($_POST['formData'], $parsed);
print_r($parsed);

会输出

Array
(
    [color] => red
    [size] => full
    [symmetry] => square
)

编辑: symmetry 有多个值,您的查询应如下所示:

<?php
$_POST = [
    'action_name' => 'edit',
    'formData' => 'color=red&size=full&symmetry[]=square&symmetry[]=circle&symmetry[]=oval',
];
parse_str($_POST['formData'], $parsed);
print_r($parsed);

这将输出:

Array
(
    [color] => red
    [size] => full
    [symmetry] => Array
        (
            [0] => square
            [1] => circle
            [2] => oval
        )
)