2

我有 2 个具有相同结构的独立多维数组。例子:

Array
(
    [0] => Array
        (
            [uploadData] => 1234 Main St
        )

    [1] => Array
        (
            [uploadData] => 5678 Elm St
        )

    [2] => Array
        (
            [uploadData] => 9879 New St
        )

    [3] => Array
        (
            [uploadData] => 9876 Shady Lane
        )

)

Array
(
    [0] => Array
        (
            [uploadData] => Orlando
        )

    [1] => Array
        (
            [uploadData] => Tampa
        )

    [2] => Array
        (
            [uploadData] => Miami
        )

    [3] => Array
        (
            [uploadData] => West Palm Beach
        )

)

我只需要将它们放入 1 个如下所示的新数组中:

Array
(
    [0] => Array
        (
            [uploadData] => 1234 Main St Orlando
        )

    [1] => Array
        (
            [uploadData] => 5678 Elm St Tampa
        )

    [2] => Array
        (
            [uploadData] => 9879 New St Miami
        )

    [3] => Array
        (
            [uploadData] => 9876 Shady Lane West Palm Beach
        )

)

我一直在尝试使用array_merge,但我无法让它工作。

4

3 回答 3

3

简单、递归、与键无关的解决方案:

function array_concat_recursive($array1, $array2){
    $result = array();
    foreach($array1 as $key => $value){
        if(isset($array2[$key])){
            if(is_array($value)){
                $result[$key] = array_concat_recursive($value, $array2[$key]);
            }else{
                $result[$key] = $value . ' ' . $array2[$key];
            }
        }
    }
    return $result;
}
于 2012-12-20T23:36:24.050 回答
2

假如说:

  1. 您的第一个数组被分配给一个名为$address
  2. 您的第二个数组被分配给一个名为$city
  3. 两个数组之间总是有完全匹配的

编辑:
@dev-null-dweller 的精彩捕捉 - 编辑以捕捉完整深度的数组。

注意
有问题的示例代码在 uploadData 键周围没有引号,因此在此处复制:

以下将做你想要的:

foreach($address as $key=>$value) {
    $newarray = array(
         'uploadData'=>$value['uploadData'] . ' ' . $city[$key]['uploadData'];
    );
}

$newarray包含根据您的请求构建的数组。

于 2012-12-20T23:09:39.127 回答
1

从两个数组中获取,直到一切都消失:

$final = [];
$key   = 'uploadData';
while ($array1 && $array2)
{
    $final[][$key] = array_shift($array1)[$key] . ' ' . array_shift($array2)[$key];
}

查看array_shift转换为布尔值

于 2012-12-20T23:14:51.850 回答