2013-10-29 151 views
1

我怎样才能得到这样的:PHP嵌套数组字典

(
[0] => Array 
    (
     [name] => variation 
     [value] => variation1 
    ) 

[1] => Array 
    (
     [name] => variationid 
     [value] => 70105 
    ) 

[2] => Array 
    (
     [name] => fullName 
     [value] => 
    ) 

[3] => Array 
    (
     [name] => address 
     [value] => 
    ) 

[4] => Array 
    (
     [name] => country 
     [value] => usa 
    ) 

[5] => Array 
    (
     [name] => state 
     [value] => Utah 
    ) 

看起来像这样:

$fields['variation']=>variation1[variationid]=>70105.. etc 

我想:

foreach($_POST['fields'] as $key => $value){ 
    $fields[$key] = $value; 
} 

我想这应该工作,但它会以完全相同的方式回馈给我。这只是jquery传入POST的一个serializedArray();我基本上只是想使用$ fields ['variation']访问来访问它。但这让它变得困难。

回答

3

您没有使用正确的嵌套数组,$value持有阵列namevalue和自$key(0,1,...)是不需要的,你甚至不需要去定义它。

foreach ($_POST['fields'] as $data) { 
    $fields[ $data['name'] ] = $data['value']; 
} 
+0

谢谢。这是有效的,现在看起来很明显,你展示它。作为一个方面的评论,是否有可能让jQuery将表单数据作为一个一级数组发送到post,就像浏览器一样?一旦你收到它,而不必像这样在PHP中修复它? – Gisheri

+0

这应该没有问题,但取决于您使用jQuery发送POST请求的方式 – kero

+0

'

等等。' '$ form = $('#myForm'); $ fields = $ form.serializeArray(); $ .post(“handler.php”,“fields”:$ fields);' 对不起,我不知道如何把换行符放在... @kingkero – Gisheri