2011-06-07 530 views
0

任何人都可以幫助我,我卡住了,不知道如何編寫一個PHP嵌套for循環轉換爲鍵值數組。需要幫助PHP數組

這是數組結構。

所需變成鍵值數組(合併JobDescription和userdetail陣列一起)

array(2) { 
    ["jobDescription"]=> array(5) { 
     ["funeralFor"]=> string(6) "Myself" 
     ["serviceType"]=> string(1) "1" 
     ["religionType"]=> string(1) "2" 
     ["area"]=> string(4) "2154" 
     ["customerComment"]=> string(6) "fdfddf" 
    } 
    ["userDetail"]=> array(6) { 
     ["contactEmail"]=> string(16) "[email protected]" 
     ["contactFirstName"]=> string(6) "fddfdf" 
     ["contactLastName"]=> string(6) "fddffd" 
     ["contactPhoneNumber"]=> string(10) "0420988191" 
     ["signup"]=> array(2) { 
      ["id"]=> string(32) "8048f0f7106c336e1a8825d1d3bec902" 
      ["input"]=> string(3) "k5m" 
     } 
     ["agreement"]=> string(1) "1" 
    } 
} 

感謝這麼多提前

+3

請張貼陣列的格式化版本(如果您已經從Web瀏覽器複製它,使用「查看源文件」在瀏覽器中保存的空格) 。 – 2011-06-07 10:12:46

+0

您在userDetail中有另一個數組用於註冊。應該保持爲一個數組還是應該將它合併到單個數組中? – 2011-06-07 10:25:12

回答

4

已存儲在陣列中兩個數組。你想要兩個數組的值而不是兩個子數組?

$newArray = array_merge($array['jobDescription'], $array['userDetail']); 
+0

對[array_merge()](http://php.net/array_merge)有相同的建議,可能這就是他所期待的。 – hakre 2011-06-07 10:22:46

0

你只需要一次循環。無需嵌套。這個解決方案涵蓋了你有未定義的數組要組合的地方。否則,你可以使用array_merge迪基

$allValues = array(); 

if(count($mainArray) > 0) 
{ 
    foreach($mainArray as $arr) 
    { 
     $allValues += $arr; 
    } 
} 
1

的建議,我認爲你正在尋找array_merge,其合併兩個數組在一起:

$new_arr = array_merge($arr['jobDescription'], $arr['userDetail']); 
0

array_merge()函數可以創建從多個陣列的陣列。在您的例子,它的工作原理是這樣的:

$yours = array(...); 
$values = array_merge($yours["jobDescription"], $yours["userDetail"]); 
1
array_merge($bigArray['jobDescription'], $bigArray['userDetail']);