2017-03-24 28 views
0

因此,您可以在下面看到我有一個數組,我從ajax請求中獲得..現在是我的問題如何將[name]用作數組?下面的陣列是兩個不同的陣列如何將字符串投射到數組

改變陣列下面是PHP

所以這樣的:

( 
    [name] => template[options][4892][is_delete] 
    [value] => 1 
) 
( 
    [name] => template[options][4892][name] 
    [value] => just_a_name 
) 

進入這個

( 
    [template] => (
     [options] => (
      [4892] => (
       name => just_a_name, 
       is_delete => 1 
      ) 
     ) 
    ) 
) 

編輯:改變值is_delete

編輯2:改變了一些東西,使其更清晰

希望這是不夠清楚

+0

如果你失去了你的'is_delete'? –

+0

這很不清楚。首先:我覺得和你一樣多麼可怕的數據源。誰實現了這樣的事情?!?你的描述中不清楚的是值的映射。您將兩個值映射到不同的位置,因此沒有明確的規則可以看到和實現......在第一個元素中,鍵是'value',在第二個'name'中,它不匹配。 'is_delete'似乎被忽略了......簡而言之:這是一團糟;-)請你花時間更精確一點?謝謝! – arkascha

+0

php與ajax有什麼關係? –

回答

1
$data = [ 
    [ 
     'name' => 'template[options][4892][is_delete]', 
     'value' => 1 
    ], 
    [ 
     'name' => 'template[options][4892][name]', 
     'value' => 'name' 
    ] 
]; 

$parsedData = []; 

foreach ($data as $item) { 
    parse_str($item['name'] . '=' . $item['value'], $out); 
    $parsedData = array_replace_recursive($parsedData, $out); 
} 

print_r($parsedData); 

結果:

Array(
    [template] => Array(
     [options] => Array(
      [4892] => Array(
       [is_delete] => 1 
       [name] => name 
      ) 
     ) 
    ) 
) 
相關問題