PHP 数组不迭代块的第一部分

我有一个名为的 PHP 数组$dataset,它已被分成两个块。我正在尝试根据每个块创建两个 Stripe 订阅计划。


schedule_batch[1]下面的代码创建了两个计划,但仅针对创建了两次的块的第二部分。第一个块中的前 9 个项目根本没有创建。


第一个块被完全忽略,第二个块被处理两次。


我已经删除了数组的全部内容,以使下面的代码示例保持简单,但它采用以下格式,并且数组中有 20 个项目。


    $dataset = array(

      array(

        "product" => $product->id,

        "unit_amount" => "2020",

        "end_date" =>  date_timestamp_get(date_create("2020-07-12")) // Payment 1 Date

    

      ),

      array(

          "product" => $product->id,

          "unit_amount" => "2000",

          "end_date" =>  date_timestamp_get(date_create("2020-07-15")) //Payment 2 Date

      ),

      array(

          "product" => $product->id,

          "unit_amount" => "3400",

          "end_date" =>  date_timestamp_get(date_create("2020-07-16")) //Payment 3 Date

      ),

      array(

          "product" => $product->id,

          "unit_amount" => "3700",

          "end_date" =>  date_timestamp_get(date_create("2020-07-18")) //Payment 4 Date

      ),

    );

    

    $schedule_batch = array_chunk($dataset, 9);

    $numberofbatches = count($schedule_batch);

    

    $phases = [];

    foreach ($schedule_batch as $index => $data) {

        $phases[] = [

          'end_date' => $data[$index]["end_date"],

          'transfer_data' => [

            'amount_percent' => $fee_percentage,

            'destination' => $account],        

          'proration_behavior' => 'none',

          'plans' => [

              [

                'price_data' => [

                  'unit_amount' => $data[$index]["unit_amount"],

                  'currency' => 'usd',

                  'product' => $data[$index]["product"],

                  'recurring' => [

                      'interval' => 'month',

                  ],

                ],

                

              ],

            ],

        ];

      }

   

翻阅古今
浏览 113回答 1
1回答

达令说

$phases将生成的代码应用到$dataset然后将其分块到 中会更容易$schedule_batch:$phases = [];foreach ($dataset as $data) {    $phases[] = [      'end_date' => $data["end_date"],      'transfer_data' => [        'amount_percent' => 20,        'destination' => 10],              'proration_behavior' => 'none',      'plans' => [          [            'price_data' => [              'unit_amount' => $data["unit_amount"],              'currency' => 'usd',              'product' => $data["product"],              'recurring' => [                  'interval' => 'month',              ],            ],                      ],        ],    ];  }$schedule_batch = array_chunk($phases, 2);$numberofbatches = count($schedule_batch);3v4l.org 上的演示您最终调用的代码createSchedule将是:foreach ($schedule_batch as $phase) {     createSchedule($customer->id, $phase); }
打开App,查看更多内容
随时随地看视频慕课网APP