PHPの配列に関する簡単な質問があります。
これが問題です。
私はこのような配列を持っています
$week_array = array(
'2013-08-18',
'2013-08-11',
'2013-08-04',
'2013-07-28',
'2013-07-21',
);
そして、私はこれらのレコードを取得しています
$records = array(
array( '2013-08-06' ),
array( '2013-08-05' ),
array( '2013-08-04' ),
array( '2013-08-03' ),
array( '2013-08-03' ),
array( '2013-08-02' ),
array( '2013-08-02' ),
array( '2013-08-01' ),
array( '2013-08-01' ),
array( '2013-07-31' ),
array( '2013-07-31' ),
array( '2013-07-30' ),
);
これが私のコードです
$week_counter = 0;
foreach($records as $row){
if($row['date'] < $week_array[$week_counter] && $row['date'] >=$week_array[$week_counter+1]){
echo 'workig';
echo '<br>';
$week_counter++;
}
}
条件に基づいて、サマーリーを表示したい(ここでは省略)。条件が満たされないため、何も表示されません。データが取得され、範囲が適切に満たされると、summery が表示されます。
レコードが一致する正確な範囲にポインターを移動するにはどうすればよいですか。簡単に言えば、新しい配列がこのように形成されるように、配列のいくつかの要素を削除したいのです。
$week_array = array(
'2013-08-11',
'2013-08-04',
'2013-07-28',
'2013-07-21',
);
開始日は2013-08-06
最初の値と 2 番目の値の間にあるため、ポインターを 0 のままにするのではなく、最初のインデックスに移動するか、配列をスライスしたいと考えています。どうやってやるの?
もう 1 つのことは、既にサマーリーが適切に表示されているため、提供した条件を変更できないことです。
編集
$records = array(
array( '2013-08-12' ),
array( '2013-08-09' ),
array( '2013-08-06' ),
array( '2013-08-06' ),
array( '2013-08-05' ),
array( '2013-08-04' ),
array( '2013-08-03' ),
array( '2013-08-03' ),
array( '2013-08-02' ),
array( '2013-08-02' ),
array( '2013-08-01' ),
array( '2013-08-01' ),
array( '2013-07-31' ),
array( '2013-07-31' ),
array( '2013-07-30' ),
この配列では、1 番目と 2 番目の範囲にレコードがあることがわかります。