2011-06-07 320 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']);