账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php求助如何将二维数组变成一维数组?
    49
    0

    现在有一个二维数组格式如下:

    Array
    (
        [0] => Array
            (
                [id] => 38
                [goods_id] => 77426
                [model_name] => 颜色
                [model_sub_name] => Array
                    (
                        [0] => 黑色
                        [1] => 白色
                        [2] => 红色
                        [3] => 浅蓝色
                        [4] => 紫色
                    )
    
                [goods_stock] => Array
                    (
                        [0] => 321
                    )
    
                [curr_price] => Array
                    (
                        [0] => 99
                    )
    
                [goods_weight] => Array
                    (
                        [0] => 280
                    )
    
            )
    
        [1] => Array
            (
                [id] => 39
                [goods_id] => 77426
                [model_name] => 尺码
                [model_sub_name] => Array
                    (
                        [0] => 32A
                        [1] => 34A
                        [2] => 36A
                        [3] => 32B
                        [4] => 34B
                        [5] => 36B
                        [6] => 38B
                        [7] => 34C
                        [8] => 36C
                        [9] => 38C
                        [10] => 40C
                        [11] => 
                    )
    
                [goods_stock] => Array
                    (
                        [0] => 321
                    )
    
                [curr_price] => Array
                    (
                        [0] => 99
                    )
    
                [goods_weight] => Array
                    (
                        [0] => 280
                    )
    
            )
    
    )

    现在需要将这个二维数组变成如下格式:

    Array
    (
        [0] => Array
            (
                [model_name] => 颜色
                [model_sub_name] => 黑色
                [goods_stock] => 321
                [curr_price] => 99
                [goods_weight] => 280
    
            )
        [1] => Array
            (
                [model_name] => 颜色
                [model_sub_name] => 白色
                [goods_stock] => 321
                [curr_price] => 99
                [goods_weight] => 280
    
            )
            ……这里省略N个数组
    
        [N+1] => Array
            (
                [model_name] => 尺码
                [model_sub_name] => 32A
                [goods_stock] => 321
                [curr_price] => 99
                [goods_weight] => 280
                   
            )
        [N+2] => Array
            (
                [model_name] => 尺码
                [model_sub_name] => 34A
                [goods_stock] => 321
                [curr_price] => 99
                [goods_weight] => 280
                   
            )
        这里也省略总数组第二个元素的几条记录
    )

    在上述数组中goods_stock、curr_price、goods_weight都是数组,如果这几个键中的数组只有一个元素,那么在model_name一样的前提下,goods_stock、curr_price、goods_weight都取这一个值,否则,就取model_sub_name中元素下标对应的goods_stock、curr_price、goods_weight中的值。比如model_sub_name为“白色”时对应的下标是1,上述数组中goods_stock、curr_price、goods_weight都只有一个元素,那么就取这一个元素的值,如果不是一个元素,则取goods_stock[1]、curr_price[1]、goods_weight[1]的值,不知道这样的描述是否理解。求助大神帮忙解决一下。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 北极猎手 普通会员 1楼

      在PHP中,你可以使用array_column()函数将二维数组转换为一维数组。以下是一个示例:

      ```php // 二维数组 $array = array( array('name' => 'John', 'age' => 30), array('name' => 'Jane', 'age' => 25) );

      // 使用array_column()函数将二维数组转换为一维数组 $one_dim_array = array_column($array, 0);

      // 输出一维数组 print_r($one_dim_array); ```

      在这个示例中,我们首先定义了一个二维数组,然后使用array_column()函数将数组的第一个元素(即"John"和"Jane")转换为一维数组。最后,我们使用print_r()函数输出一维数组。

      如果你想将一维数组转换回二维数组,你可以使用array_map()函数和array_column()函数的第三个参数。以下是一个示例:

      ```php // 一维数组 $array = array( 'name' => 'John', 'age' => 30 );

      // 使用array_map()函数和array_column()函数将一维数组转换为二维数组 $two_dim_array = array_map('array_column', $array);

      // 输出二维数组 print_r($two_dim_array); ```

      在这个示例中,我们首先定义了一个一维数组,然后使用array_map()函数和array_column()函数的第三个参数将数组的第一个元素(即"John")转换为二维数组。最后,我们使用print_r()函数输出二维数组。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部