PHP二维数组合并为一维数组

我们在日常的工作中,总会涉及到与小伙伴们协同合作,各司其职。有时候涉及到需要使用跨业务数据(由其他小伙伴负责开发的版块)的时候,而小伙伴提供的数据与我们预期的数据结构不同时,我们需要自己使用小伙伴们提供的数据进行组装,进而得到我们需要的数据,本文将使用具体代码展示二维数组组装成一维数组的几种思路。

假如有如下场景:
假如说有小米、华为、苹果这几个大分类,每个大分类下边又有多个小分类,例如小米下边可能有手机、平板、电脑等。现在你要获取3个大分类下的所有商品,你肯定需要对商品进行分类的In查询,而你的小伙伴给你提供的方法返回的分类是按照大分类下放小分类的数据结构,你肯定就需要自己重新组装下数据,你要的数据是一个所有小分类组成的一维数组。

方案一

    $array = [
        1 => [10,20,30,40],
        2 => [50,60,70,80],
        3 => [500,600,700,800],
    ];
    $result = [];
    foreach( $array as $item ) {
        $result = array_merge($result , $item);
    }
    var_dump($result);

    // array (size=12)
    //  0 => int 10
    //  1 => int 20
    //  2 => int 30
    //  3 => int 40
    //  4 => int 500
    //  5 => int 600
    //  6 => int 700
    //  7 => int 800
    //  ...

方案二

    $array = [
        1 => [10,20,30,40],
        2 => [50,60,70,80],
        3 => [500,600,700,800],
    ];
    $result = [];
    array_map(function($item) use (&$result) {
        $result = array_merge($result , $item);
    } , $array);
    var_dump($result);

    // array (size=12)
    //  0 => int 10
    //  1 => int 20
    //  2 => int 30
    //  3 => int 40
    //  4 => int 500
    //  5 => int 600
    //  6 => int 700
    //  7 => int 800
    //  ...

发表评论

电子邮件地址不会被公开。 必填项已用*标注