我有一个数组
,其中包含图像和每个图像的日期。我正在通过数组 explode
检索日期。我想获取此日期值并将其与上一张图像的前一个日期值进行比较。我的目标是将这些日期显示为与每个不同日期对应的图像集的标题。
这是我一直在摆弄的代码,试图让它工作(对不起我所有的斜杠):
$p = 0;
$a = -1;
echo "<table>";
echo "<tr>";
foreach (array_combine($images,$locs) as $image => $loc)
{
$p++;
$a++;
$datesort = explode('>',$image);
echo "<style>";
echo "input[label=t" . $p . "] {";
echo "display: none;";
echo "}";
echo "input[label=t" . $p . "] + label {";
echo "border: 5px solid #FFFFFF;";
$image = "background: url('http://blah.com/" . $loctb[$p] . "');";
echo $image;
echo "height: 61px;";
echo "width: 92px;";
echo "display: inline-block;";
echo "padding: 0 0 0 0px;";
echo "}";
echo "input[label=t" . $p . "]:checked + label {";
echo "border: 5px solid #FF9900;";
echo "background: url('http://blah.com/" . $loctb[$p] . "');";
echo "height: 61px;";
echo "width: 92px;";
echo "display: inline-block;";
echo "padding: 0 0 0 0px;";
echo "}";
echo "</style>";
$lastdate = array("");
$lastdate[$a] = $datesort[1];
echo "<td>";
if ($lastdate[$a] <> $datesort[1]){
echo "<h2>";
echo $datesort[1];
echo "</h2>";
}
echo "<input type=\"checkbox\" label=\"t" . $p . "\" id=\"t" . $p . "\" name =\"boxes[]\" value=\"<img src=http://blah.com/" . $loc . "\" />";
echo "<label for=\"t" . $p . "\"></label>";
echo "</div>";
echo "</td>";
if ($p % 2 == 0)
{
echo "</tr>";
}
}
echo "</table>";
我一直试图将当前日期值存储到另一个 array
变量中,然后在下一次通过我的 foreach
循环将其与新值进行比较,但是我我做错了:-/...
如果您能提供任何帮助,我将不胜感激。谢谢
最佳答案
这是一种快速而肮脏的方法,尽管您需要根据自己的需要对其进行调整(我遇到了这个问题,但更糟的是我还在中间填写了空白日期):
$previous_dates = array();
foreach (array_combine($images,$locs) as $image => $loc) {
$datesort = explode('>',$image);
if (end($previous_dates) <> $datesort[1]) {
echo "<h2>";
echo $datesort[1];
echo "</h2>";
}
// ... more stuff ...//
$previous_dates[] = $datesort[1];
}
真的,我会重新考虑您为循环内的爆炸所采用的方法,但首先要做的是,看看这是否能让您到达需要的位置。
关于PHP 将当前数组值与前一个值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418387/