我有一个简单的问题与数组有关的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:原始字符串比较将使用这种明确的格式。亲自尝试一下。 :) –