Php 数组,如何显示;“改变价值观”;只有
假设我有一个带有日期和季节的数组,每天有一个条目。我只想在季节值更改时打印数组行 该数组如下所示:Php 数组,如何显示;“改变价值观”;只有,php,foreach,Php,Foreach,假设我有一个带有日期和季节的数组,每天有一个条目。我只想在季节值更改时打印数组行 该数组如下所示: 2009-10-28 00:00:00 (good season) 2009-10-29 00:00:00 (good season) 2009-10-30 00:00:00 (good season) 2009-10-31 00:00:00 (good season) 2009-11-01 00:00:00 (good season) 2009-11-02 00:00:00
2009-10-28 00:00:00 (good season)
2009-10-29 00:00:00 (good season)
2009-10-30 00:00:00 (good season)
2009-10-31 00:00:00 (good season)
2009-11-01 00:00:00 (good season)
2009-11-02 00:00:00 (bad season)
2009-11-03 00:00:00 (bad season)
2009-11-04 00:00:00 (bad season)
2009-11-05 00:00:00 (bad season)
循环浏览,记录上一季:
$lastSeason = '';
foreach ($array as $date => $season)
{
if ($season != $lastSeason)
echo "Season changed on " . $date;
$lastSeason = $season;
}
循环浏览,记录上一季:
$lastSeason = '';
foreach ($array as $date => $season)
{
if ($season != $lastSeason)
echo "Season changed on " . $date;
$lastSeason = $season;
}
存储上一次迭代的状态,并将其与当前迭代的状态进行比较。如果它们不同,请打印项目:
$last = null;
foreach ($array as $val) {
if (preg_match('/^\d{4}-\d{2}\d{2} \d{2}:\d{2}:\d{2} \((good|bad) season\)$/', $val, $match)) {
if ($last != $match[1]) {
echo $val;
}
$last = $match[1];
}
}
存储上一次迭代的状态,并将其与当前迭代的状态进行比较。如果它们不同,请打印项目:
$last = null;
foreach ($array as $val) {
if (preg_match('/^\d{4}-\d{2}\d{2} \d{2}:\d{2}:\d{2} \((good|bad) season\)$/', $val, $match)) {
if ($last != $match[1]) {
echo $val;
}
$last = $match[1];
}
}
假设您的数组是数组的数组:
if(count($array) > 0) {
$prev = $array[0]['season'];
foreach ($array as $row) {
if ($row['season'] != $prev) echo $row['date'];
$prev = $row['season'];
}
}
假设您的数组是数组的数组:
if(count($array) > 0) {
$prev = $array[0]['season'];
foreach ($array as $row) {
if ($row['season'] != $prev) echo $row['date'];
$prev = $row['season'];
}
}
为什么要用复杂正则表达式来解决这么简单的问题?为什么要用复杂正则表达式来解决这么简单的问题?