为了账号安全,请及时绑定邮箱和手机立即绑定

使用多维数组导出 CSV 格式

使用多维数组导出 CSV 格式

PHP
一只萌萌小番薯 2022-07-16 17:20:19
我正在尝试使用以下代码将多维数组导出为 CSV 格式,但我遇到的错误很少.. 下面是数组 "orders": [            {                "id": 1,                "first_name": “test",                "last_name": “test",                "email": “test@test.gmail.com",                “Order1": [                    {                      "order_id": 1,                        "first_name": “test",                        "last_name": “test",                        “Amount": 27.77                    }                ],                "payment": {                    "id": 1,                    "trans_id": 12345,                    "last_four": “1111",                    "total_paid": 27.77                }            },            {                "id": 2,                "first_name": “test1",                "last_name": “test1",                "email": “test1@test.gmail.com",                “Order1": [                    {                      "order_id": 2,                        "first_name": “test1",                        "last_name": “test1",                        “Amount": 28.77                    }                ],                "payment": {                    "id": 1,                    "trans_id": 12346,                    "last_four": “2222",                    "total_paid": 28.77                }             }           ]我期待的 csv 文件的输出1 test test test@gmail.com 1 test test 27.77 12345 1111 27.772 test1 test1 test1@gmail.com 2 test1 test1 28.77 12346 2222 28.77我想将所有数据转换为 csv 文件。问题是,由于所有子数组,我似乎无法让它工作。header('Content-Type: text/csv;');                header('Content-Disposition: attachment; filename=order.csv');                header("Pragma: no-cache");                header("Expires: 0");                $fh = fopen('php://output', 'w');                fputcsv($fh, array_keys($orders[0]));foreach ($orders as $order) {    $result = [];    array_walk_recursive($order, function($item) use (&$result) {        $result[] = $item;    });    fputcsv($fh, $result);}我对此有错误
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

$orders = $result->data->orders;

                if(empty($orders))

                {

                    $request->session()->flash('message', 'No records');

                    return back();

                }

                header('Content-Type: text/csv;');

                header('Content-Disposition: attachment; filename=orders.csv');

                header("Pragma: no-cache");

                header("Expires: 0");

                $fh = fopen('php://output', 'w');

                fputcsv($fh, array('Order Id','First Name','Last Name','Email','Amount','Transaction Id','Last Four','Total Paid'));

                foreach ($orders as $order) {

                    $order_data = array($order->id);

                    array_push($order_data, $order->first_name);

                    array_push($order_data, $order->last_name);

                    array_push($order_data, $order->email);

                        foreach ($order->order1 as $order) {

                            $order1 = array($order);

                            for($i = 0; $i < count($order1); $i++) {

                           array_push($order_data,$order1[$i]->amount);


                            }

                    array_push($order_data, $order->payment->trans_id);

                    array_push($order_data, $order->payment->last_four);

                    array_push($order_data, $order->payment->total_paid);

                        }

                    }

                    fputcsv($fh, $order_data);

                }

此代码解决了我的问题


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号