将多维关联数组展平一级

问题描述 投票:0回答:5

我不知道如何编写嵌套的

for
循环来转换为键值数组。

这是数组结构。

我需要将第二级数据展平为第一级(将 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"
    }
}
php arrays multidimensional-array associative-array flatten
5个回答
4
投票

你有两个数组存储在一个数组中。您想要一个数组下的两个数组的值而不是两个子数组吗?

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

1
投票

我认为您正在寻找

array_merge
,它将两个数组合并在一起:

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

1
投票
array_merge($bigArray['jobDescription'], $bigArray['userDetail']);

0
投票

您只需要循环一次。无需筑巢。该解决方案涵盖了要组合的数组数量未定义的情况。否则,您可以按照 Dickie

 的建议使用 
array_merge

$allValues = array();

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

0
投票

array_merge()
函数可以从多个数组创建一个数组。在您的示例中,它是这样工作的:

$yours = array(...);
$values = array_merge($yours["jobDescription"], $yours["userDetail"]);
© www.soinside.com 2019 - 2024. All rights reserved.