2013-10-29 153 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