TP5二维数组分类重组

9 篇文章 0 订阅

上传之前的数组格式list

 

foreach($voucherInfo as $key=>$vo){
            $list[] = array_merge($vo,$voucherTypeInfo[$key]);
        }
           
        foreach ($list as $voucher){
            $temp['id'] = $voucher['voucher_id'];
            $temp['title'] = $voucher['title'];
            $temp['price'] = $voucher['price'];
            $temp['jifen'] = ceil(bcdiv(bcmul($voucher['price'],10000),15,2));
            $temp['is_show'] = $voucher['is_show'];
            $temp['icon'] = $voucher['img'];
            $data[$voucher['name']][] = $temp;
        }
        return $data;

重组以后的data数组

 

通过name值对数组重组成多组二维数组

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,`Py_BuildValue` 是用于将 Python 对象转换为 C 语言的结构化数据,通常用于扩展模块之间进行数据交换。当你需要传递二维数组时,你需要创建一个适合的 C 结构体,并使用 `Py_BuildValue` 来填充这个结构。 二维数组在 C 里通常表示为一个包含指向一维数组指针的一维数组,或者使用类似 `struct` 定义的嵌套数组。这里是一个例子: ```c #include <Python.h> #include <structmember.h> typedef struct { PyObject *data; // 存储二维数组的内部一维数组 int rows; int cols; } PyMyArray; static PyMemberDef memberdef[] = { {"data", T_OBJECT, offsetof(PyMyArray, data), READONLY, "Data of the array"}, {NULL} // 结束定义 }; static PyTypeObject PyMyArrayType = { PyVarObject_HEAD_INIT(NULL, 0) .tp_name = "PyMyArray", .tp_basicsize = sizeof(PyMyArray), .tp_itemsize = 0, .tp_members = memberdef, .tp_doc = "Custom type for a 2D array in Python", }; static int PyMyArray_init(PyMyArray *self, PyObject *args, PyObject *kwargs) { // 初始化rows和cols if (!PyArg_ParseTuple(args, ":PyMyArray", &self->rows, &self->cols)) { return -1; } // 用PyObject的array API 创建一个内部的二维数组 self->data = PyList_New(self->rows); if (self->data == NULL) { return -1; } // 进行进一步的数据填充或初始化 // ... return 0; } static void PyMyArray_dealloc(PyMyArray *self) { Py_XDECREF(self->data); Py_TYPE(self)->tp_free((PyObject *)self); } static PyMethodDef PyMyArray_methods[] = { {NULL} /* Sentinel */ }; PyDoc_STRVAR(PyMyArray_doc, "A custom class representing a 2D array in Python.\n" "Parameters:\n" " rows: The number of rows.\n" " cols: The number of columns.\n" ); static PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "my_array_extension", PyMyArray_doc, -1, PyMyArray_methods, NULL, NULL, NULL, NULL }; PyMODINIT_FUNC PyInit_my_array_extension(void) { PyObject *m = PyModule_Create(&moduledef); if (m == NULL) { return NULL; } PyMyArray_Type.tp_base = &PyVarObject_Type; Py_INCREF(&PyMyArray_Type); if (PyModule_AddObject(m, "PyMyArray", (PyObject *)&PyMyArray_Type) < 0) { Py_DECREF(&PyMyArray_Type); return NULL; } return m; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值