请问怎么使用动态数组来实现订单中的产品按类别进行分开保存?

shiguangxin 2020-06-12 12:14:42
有10个类别,100多种产品
用户下单时要根据订单中的产品类别分开计算
我想用动态数组来实现订单中的产品按类别进行分开保存

类别数组 (类别id , 类别名称 , 类别加权值 , 产品数组)

其中:产品数组(产品ID,产品类别,产品价格,产品数量,产品总金额)

请教有几个问题:
1、这样的数组怎么定义?
2、怎么在 “类别数组”中动态插入新的 类别信息
3、怎么将保存产品信息的二维数组动态插入 “产品数组“中
4、怎么循环这个数组?

刚接触 php 请各位多多指教 谢谢
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
很訾 2020-06-16
  • 打赏
  • 举报
回复
假如数据是这样的

[
    ['category_id'=>1,'category_name'=>'类别1','goods_id'=>1,'goods_name'=>'产品名称1'],
    ['category_id'=>1,'category_name'=>'类别1','goods_id'=>2,'goods_name'=>'产品名称2'],
    ['category_id'=>2,'category_name'=>'类别2','goods_id'=>3,'goods_name'=>'产品名称3'],
    ['category_id'=>2,'category_name'=>'类别2','goods_id'=>4,'goods_name'=>'产品名称4'],
    ['category_id'=>3,'category_name'=>'类别3','goods_id'=>5,'goods_name'=>'产品名称5'],
    ['category_id'=>3,'category_name'=>'类别3','goods_id'=>6,'goods_name'=>'产品名称6']
]
这样就行了

$data=[];
foreach($arr as $row){
    $data[$row['category_id']]['goods'][] = $row;
    $data[$row['category_id']]['category_id'] = $row['category_id'];
    $data[$row['category_id']]['category_name'] = $row['category_name'];
}
var_dump($data);
打出来大概这样

array(3) {
  [1]=>
  array(3) {
    ["goods"]=>
    array(2) {
      [0]=>
      array(4) {
        ["category_id"]=>
        int(1)
        ["category_name"]=>
        string(7) "类别1"
        ["goods_id"]=>
        int(1)
        ["goods_name"]=>
        string(13) "产品名称1"
      }
      [1]=>
      array(4) {
        ["category_id"]=>
        int(1)
        ["category_name"]=>
        string(7) "类别1"
        ["goods_id"]=>
        int(2)
        ["goods_name"]=>
        string(13) "产品名称2"
      }
    }
    ["category_id"]=>
    int(1)
    ["category_name"]=>
    string(7) "类别1"
  }
  [2]=>
  array(3) {
    ["goods"]=>
    array(2) {
      [0]=>
      array(4) {
        ["category_id"]=>
        int(2)
        ["category_name"]=>
        string(7) "类别2"
        ["goods_id"]=>
        int(3)
        ["goods_name"]=>
        string(13) "产品名称3"
      }
      [1]=>
      array(4) {
        ["category_id"]=>
        int(2)
        ["category_name"]=>
        string(7) "类别2"
        ["goods_id"]=>
        int(4)
        ["goods_name"]=>
        string(13) "产品名称4"
      }
    }
    ["category_id"]=>
    int(2)
    ["category_name"]=>
    string(7) "类别2"
  }
  [3]=>
  array(3) {
    ["goods"]=>
    array(2) {
      [0]=>
      array(4) {
        ["category_id"]=>
        int(3)
        ["category_name"]=>
        string(7) "类别3"
        ["goods_id"]=>
        int(5)
        ["goods_name"]=>
        string(13) "产品名称5"
      }
      [1]=>
      array(4) {
        ["category_id"]=>
        int(3)
        ["category_name"]=>
        string(7) "类别3"
        ["goods_id"]=>
        int(6)
        ["goods_name"]=>
        string(13) "产品名称6"
      }
    }
    ["category_id"]=>
    int(3)
    ["category_name"]=>
    string(7) "类别3"
  }
}
你们都是相同的问题啊 https://bbs.csdn.net/topics/396799017
shiguangxin 2020-06-12
  • 打赏
  • 举报
回复
请问这样的数组 怎么定义 怎么动态添加数据 怎么遍历 谢谢
shiguangxin 2020-06-12
  • 打赏
  • 举报
回复
引用 1 楼 下雨的声音丶 的回复:
你可以 设置成这样

[
    '类别id1'=>[
        '类别id'=>1,
        '类别名称'=>'电子产品',
        '类别加权值'=>2,
        '产品'=>[
            [
                '产品ID'=>1,
                '产品类别'=>1,
                '产品价格'=>1000,
                '产品数量'=>2,
                '产品总金额'=>2000,
            ],
            [
                '产品ID'=>2,
                '产品类别'=>1,
                '产品价格'=>200,
                '产品数量'=>1,
                '产品总金额'=>200,
            ],
        ]
    ],
    '类别id2'=>[
        '类别id'=>2,
        '类别名称'=>'衣服',
        '类别加权值'=>1,
        '产品'=>[
            [
                '产品ID'=>3,
                '产品类别'=>2,
                '产品价格'=>500,
                '产品数量'=>3,
                '产品总金额'=>1500,
            ]
        ]
    ],
];
对的 对的 我要的就是这样的数组
下雨的声音丶 2020-06-12
  • 打赏
  • 举报
回复
你可以 设置成这样

[
    '类别id1'=>[
        '类别id'=>1,
        '类别名称'=>'电子产品',
        '类别加权值'=>2,
        '产品'=>[
            [
                '产品ID'=>1,
                '产品类别'=>1,
                '产品价格'=>1000,
                '产品数量'=>2,
                '产品总金额'=>2000,
            ],
            [
                '产品ID'=>2,
                '产品类别'=>1,
                '产品价格'=>200,
                '产品数量'=>1,
                '产品总金额'=>200,
            ],
        ]
    ],
    '类别id2'=>[
        '类别id'=>2,
        '类别名称'=>'衣服',
        '类别加权值'=>1,
        '产品'=>[
            [
                '产品ID'=>3,
                '产品类别'=>2,
                '产品价格'=>500,
                '产品数量'=>3,
                '产品总金额'=>1500,
            ]
        ]
    ],
];

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧