我有一个数组,我想创建一个新的数组,其中包含日期值,但是当达到第一个停止销售值时,创建一个新的数组,其中只包含日期值。
[0]=>
string(10) "2023-03-10"
[1]=>
string(10) "2023-03-11"
[2]=>
string(10) "2023-03-12"
[3]=>
string(10) "2023-03-13"
[4]=>
string(10) "2023-03-14"
[5]=>
string(10) "2023-03-15"
[6]=>
string(9) "STOPSALES"
[7]=>
string(9) "STOPSALES"
[8]=>
string(9) "STOPSALES"
[9]=>
string(9) "STOPSALES"
[10]=>
string(9) "STOPSALES"
[11]=>
string(9) "STOPSALES"
[12]=>
string(9) "STOPSALES"
[13]=>
string(9) "STOPSALES"
[14]=>
string(9) "STOPSALES"
[15]=>
string(9) "STOPSALES"
[16]=>
string(9) "STOPSALES"
[17]=>
string(10) "2023-03-27"
[18]=>
string(10) "2023-03-28"
[19]=>
string(10) "2023-03-29"
[20]=>
string(10) "2023-03-30"
[21]=>
string(10) "2023-03-31"
[22]=>
string(10) "2023-04-01"
[23]=>
string(10) "2023-04-02"
[24]=>
string(10) "2023-04-03"
我希望这个结果
[0]=>
string(10) "2023-03-10"
[1]=>
string(10) "2023-03-11"
[2]=>
string(10) "2023-03-12"
[3]=>
string(10) "2023-03-13"
[4]=>
string(10) "2023-03-14"
[5]=>
string(10) "2023-03-15"
[1]=>
string(10) "2023-03-27"
[1]=>
string(10) "2023-03-28"
[2]=>
string(10) "2023-03-29"
[3]=>
string(10) "2023-03-30"
[4]=>
string(10) "2023-03-31"
[5]=>
string(10) "2023-04-01"
[6]=>
string(10) "2023-04-02"
[7]=>
string(10) "2023-04-03"
尝试了几个小时的foreach和if语句,但找不到路。
这是我最好的办法。
我有一个数组,我想创建一个新的数组,其中包含日期值,但是当达到第一个停止销售值时,创建一个新的数组,其中只包含日期值。
$res = [];
$num = 0;
foreach ($array as $go) {
if ($go == 'STOPSALES') {
continue;
} else {
$num = $num+1;
array_push($res[$num],$go);
}
}
var_export($result);
我已经添加了这段代码,以了解这是我最好的方法。我有这个数组,我想用日期值创建一个新数组,但当达到第一个停止销售值时,创建一个新数组,只使用日期值。
我有一个数组,我想创建一个新的数组,其中包含日期值,但是当达到第一个停止销售值时,创建一个新的数组,其中只包含日期值。
2条答案
按热度按时间g6baxovj1#
将引用变量推入结果数组,这样就不需要维护/增加计数器变量和切换布尔变量。
下面的代码只会在遇到
STOPSALES
值时销毁引用。对于所有其他值,它将创建并推送一个新引用,或者只是将新值推送到现有引用中。代码:(Demo)
由于处理的是索引输入数组,因此可以有条件地检查值是否为上一个索引,并在推送当前值时转换结果数组组的第一级键。
代码:(Demo)
isr3a4wc2#
下面是实现你的愿望的一种方法:
结果是:
如果你需要更多的细节,尽管问我。