我有一個簡單的問題與數組有關的PHP。
這是問題所在。刪除超出範圍的上層數組元素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++;
}
}
在我想要顯示的條件基礎總結(我在這裏省略)。但它沒有顯示任何內容,因爲條件從未滿足當數據被提取並且範圍適當時,顯示總結。
現在我該如何將指針移動到我的記錄應該匹配的確切範圍。簡單地說,我想刪除一些數組元素,以便新數組形成這樣。
$week_array = array(
'2013-08-11',
'2013-08-04',
'2013-07-28',
'2013-07-21',
);
由於開始日期是2013-08-06
該第一和第二值之間未來因此,我希望移動指針到第一索引而不是保持在0或我想切片陣列。我怎樣才能做到這一點?
另一件事是,我不能改變我提供的條件,因爲它已經正確顯示夏季。
編輯
$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' ),
在這個數組,你可以看到有記錄在第一和第二範圍的到來。
你的狀態永遠不會起作用,因爲日期不能早是和也等於或晚於另一個......所以請明確預期的結果應該是關於什麼哪變量! –
你真的比較原始字符串嗎?這是行不通的。 PHP應該如何知道哪個字符串「更大」?您必須將它們轉換爲數字或編寫自己的比較。 – Chris
@Chris:原始字符串比較將使用這種明確的格式。親自嘗試一下。 :) –