【问题标题】:How to merge one dimensional array and two dimensional array in php [duplicate]如何在php中合并一维数组和二维数组[重复]
【发布时间】:2017-04-12 06:32:18
【问题描述】:

我有两个数组,一个是two dimensional,第二个是one dimensional,想合并成一个二维数组。

例如:

# array1
Array
(
    [0] => Array
        (
            [id] => 598          
        )

    [1] => Array
        (
            [id] => 599        
        )
)
# array2
Array
(       
    [id] => 66    
)

#resultant array
Array
(
    [0] => Array
        (
            [id] => 598
        )
    [1] => Array
        (
            [id] => 599
        )
    [2] => Array
        (
            [id] => 66         
        )
)

在上面的示例中,array1array2 是两个输入数组,希望得到 resultant array

我尝试了array_merge php 函数,但它不起作用。

怎么做?

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    如果你只想添加一个元素,它会起作用:

    $array1[] = $array2;
    

    如果你想创建一个新数组,它应该可以工作:

    <?php
    $array1 = [
        0 => ['id' => 598],
        1 => ['id' => 599],
    ];    
    $result_array = $array1;    
    $array2 = [
        'id' => 66,
    ];
    
    $result_array[] = $array2;    
    print_r($result_array);    
    ?>
    

    在这种情况下,只需在 $array1$array2 中添加新元素。

    如果您在$array2 中有更多项目,您可以按如下方式进行:

    $result_array = $array1; 
    foreach ($array2 as $key => $value) {
        $result_array[] = [$key => $value];
    }
    print_r($result_array);
    

    【讨论】:

    • 它不工作。 Array ( [0] =&gt; Array ( [0] =&gt; Array ( [id] =&gt; 598 ) [1] =&gt; Array ( [id] =&gt; 599 ) ) [1] =&gt; Array ( [id] =&gt; 66 ) )
    • 对我有用。查看更多信息:sandbox.onlinephpfunctions.com/code/…
    • 不,我想创建一个新的two dimensional 数组。
    • 立即查看:sandbox.onlinephpfunctions.com/code/… 还更新了答案中的代码。
    • 但是如何识别它是one dimensional 还是two dimensional?因为这些是动态的。
    【解决方案2】:

    您可以从array_value 获取值,然后将id 键分配给您的值,然后将merge 分配给您的数组。

    $array1 = array(
        array('id' => "2"),
        array('id' => "3"),
    );
    
    $array2 = array(
        'id' => "1"
    );
    
    $array2['id'] = array_values($array2);
    
    $data = array_merge($array2,$array1);
    

    【讨论】:

    • 我不能这样做,因为我正在从数据库中动态获取 array1、array2 等。
    • @VinayaMaheshwari 试试我的更新答案
    猜你喜欢
    • 2018-02-09
    • 2021-11-17
    • 2011-10-18
    • 2014-03-12
    • 1970-01-01
    • 2011-07-26
    • 2019-02-25
    • 2010-12-18
    • 2015-06-04
    相关资源
    最近更新 更多