2016-07-28 4 views
0

下のコードを見てください。PHPはforeachで渡された値のそれぞれに対して複数の配列を作成します

$data = []; 

     foreach($dates as $date) 
     { 
      for ($x = 0; $x <= $this->days; $x++) 
      { 
       $data[] = clone $date; 

       $date = $date->subDays('1'); 
      } 
     } 

$datesは、x個の炭素インスタンスからなる配列です。それぞれの日付について、上記のコードスニペットを使用して新しい日付セットを作成したいと思います。

は任意の数値を指定できます。それが1に設定されている場合、私は既に持っているものとは対照的に1つの追加日を作成します。例:

私は2つの日付があります。上記のコードスニペットを使用して

2016-01-10 // 10th of january 2016 
2016-05-15 // 15th of may 2016 

を、私はそれから1日減算し、それを追加することによって、私の配列で私$datesのそれぞれのための追加$dateを作成します。アレイ。その後、私は4つの日付で構成される配列を持っています:

$data = ['2016-01-10', '2016-01-09', '2016-05-15', '2016-05-14']; // Example array, not the actual output 

期待どおりに動作します。しかし、私が欲しいのは、日付のそれぞれについて、それらをすべて1つの配列にするのではなく、新しいオブジェクトまたは配列に入れることです。だから私の例ではjanuaryの日付は、私は配列、またはオブジェクト、またmayの日付が欲しいです。

どのように私はこれを達成することができますか?ここで

答えて

1

はサブアレイを作成する方法である:

$data = []; 

foreach($dates as $date) 
{ 
    $partition = []; // create new sub-array 
    for ($x = 0; $x <= $this->days; $x++) 
    { 
     $partition[] = clone $date; // add to it 

     $date = $date->subDays('1'); 
    } 
    $data[] = $partition; // now add to main array 
} 
+0

恐ろしいもの、おかげでたくさん!それは明らかだから、私はこのbtwを知っていたはずです...しかし、それはいつも学ぶことは良いです:) – Hardist

関連する問題