【问题标题】:Merging inner-inner arrays of array合并数组的内部数组
【发布时间】:2016-12-29 22:45:21
【问题描述】:

我有以下数组:

Array (        
        [0] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3

                )

        [1] => Array
                (
                    [0] => Array
                        (
                            [0] => 1
                            [1] => 2
                        )
                    [1] => Array
                        (  
                            [0] => 3
                            [1] => 4
                        )
                ) 
    )

我想要做的是将 [1] 的内部数组合并在一起,给我一个看起来像这样的新数组:

Array (    
         [0] => Array
                        (
                            [0] => 1
                            [1] => 2
                            [2] => 3

                        )
        [1] => Array
                        (
                            [0] => 1
                            [1] => 2
                            [2] => 3
                            [4] => 4
                        )
    )

请教我如何做到这一点的任何提示?谢谢

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    <?php
    
    $arr = array(
        0 => array(
            0 => 1,
            1 => 2,
            2 => 3
        ),
        1 => array(
            0 => array(
                0 => 1,
                1 => 2
            ),
            1 => array(  
                0 => 3,
                1 => 4
            )
        ) 
    );
    
    for ($i = 0; $i < count($arr); $i++) {
        $fixedArray = array();
    
        foreach ($arr[$i] as $key => $value) {
            if (!is_array($value)) continue;
    
            foreach ($value as $subKey => $subValue)
                $fixedArray[] = $subValue;
        }
    
        if (count($fixedArray) > 0)
            $arr[$i] = $fixedArray;
    }
    
    print_r($arr);
    
    ?>
    

    输出:

    Array
    (
        [0] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )
    
        [1] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
                [3] => 4
            )
    
    )
    

    这是一种方法,并不是说这是最好的方法,但它确实有效。

    【讨论】:

    • 谢谢,干得好!
    【解决方案2】:

    这是我的:

    <?php
    $multiArray = [
        0 => [
            0 =>1,
            1 => 2,
            2 => 3
        ],
        1 => [
            0 => [
                0 => 1,
                1 => 2
            ],
            1 => [
                0 => 3,
                1 => 4
    
            ]
        ]
    ];
    
    $aux = [];
    foreach($multiArray as $key => $arr){
        foreach($arr as $k =>$a){
            if (is_array($a) ){
                $aux= $arr;
                break;
            }
        }
    }
    
    list($item1, $item2) = $aux;
    $new = array_merge($item1, $item2);
    $multiArray[1] =$new;
    print_r($multiArray);
    ?>
    

    【讨论】:

      猜你喜欢
      • 2022-08-02
      • 2017-02-13
      • 2018-01-22
      • 2017-11-29
      • 2020-08-12
      • 2020-11-26
      • 2013-06-07
      • 2016-09-15
      • 1970-01-01
      相关资源
      最近更新 更多