php 数组中的重复值
repeat value in a php array
我想做一个每 4 天重复一次该值的计划模式...
在 php 脚本下方循环日期从 1-Sept 到 30-Sept.I 想要每 4 天重复一次该值...
例如,我的值为 (A,B,C,D) 并且我想每 4 天重复一次...这意味着
1/9 = A
2/9 = B
3/9 = C
4/9 = D
5/9 = A
6/9 = B
7/9 = C
8/9 = D
......直到 30/9 然后停止......
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$value = "A";
while (strtotime($start_date) <= strtotime($end_date)) {
echo "$start_date <br>";
$start_date = date ("Y-m-d", strtotime("+1 day", strtotime($start_date)));
}
?>
像这样的事情怎么样:
$values = ['A', 'B', 'C', 'D'];
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$current_date = $start_date;
$index = 0;
while (strtotime($current_date) <= strtotime($end_date)) {
$i = $index % count($values);
echo "$current_date: $values[$i]\n";
$current_date = date("Y-m-d", strtotime("+1 day", strtotime($current_date)));
$index++;
}
%
是一个modulus operator,其中returns一个除法的余数。 $a % $b
returns $a
的余数除以 $b
。所以例如 6 % 4
是 2,7 % 4
是 3 等等。
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$value = array(
"A",
"B",
"C",
"D"
);
$i = 0;
while (strtotime($start_date) <= strtotime($end_date)) {
echo "$start_date = " . $value[$i] . " <br>";
if ($i == count($value) - 1) {
$i = 0;
} else {
$i++;
}
$start_date = date("Y-m-d", strtotime("+1 day", strtotime($start_date)));
}
?>
还有另一个版本:
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = strtotime('2015-09-01');
// End date
$end_date = strtotime('2015-09-30');
$value = "A";
for ($date = $start_date; $date <= $end_date;
$date = strtotime("+1 day", $date)) {
$date_str = date("Y-m-d", $date);
echo "$date_str: $value<br>\n";
$value++;
if ($value > "D") {
$value = "A";
}
}
?>
注意:虽然变量具有日期后缀,但它们包含 UNIX 时间值,而不是某种日期对象。
我想做一个每 4 天重复一次该值的计划模式... 在 php 脚本下方循环日期从 1-Sept 到 30-Sept.I 想要每 4 天重复一次该值... 例如,我的值为 (A,B,C,D) 并且我想每 4 天重复一次...这意味着
1/9 = A
2/9 = B
3/9 = C
4/9 = D
5/9 = A
6/9 = B
7/9 = C
8/9 = D
......直到 30/9 然后停止......
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$value = "A";
while (strtotime($start_date) <= strtotime($end_date)) {
echo "$start_date <br>";
$start_date = date ("Y-m-d", strtotime("+1 day", strtotime($start_date)));
}
?>
像这样的事情怎么样:
$values = ['A', 'B', 'C', 'D'];
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$current_date = $start_date;
$index = 0;
while (strtotime($current_date) <= strtotime($end_date)) {
$i = $index % count($values);
echo "$current_date: $values[$i]\n";
$current_date = date("Y-m-d", strtotime("+1 day", strtotime($current_date)));
$index++;
}
%
是一个modulus operator,其中returns一个除法的余数。 $a % $b
returns $a
的余数除以 $b
。所以例如 6 % 4
是 2,7 % 4
是 3 等等。
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = '2015-09-01';
// End date
$end_date = '2015-09-30';
$value = array(
"A",
"B",
"C",
"D"
);
$i = 0;
while (strtotime($start_date) <= strtotime($end_date)) {
echo "$start_date = " . $value[$i] . " <br>";
if ($i == count($value) - 1) {
$i = 0;
} else {
$i++;
}
$start_date = date("Y-m-d", strtotime("+1 day", strtotime($start_date)));
}
?>
还有另一个版本:
<?php
// Set timezone
date_default_timezone_set('UTC');
// Start date
$start_date = strtotime('2015-09-01');
// End date
$end_date = strtotime('2015-09-30');
$value = "A";
for ($date = $start_date; $date <= $end_date;
$date = strtotime("+1 day", $date)) {
$date_str = date("Y-m-d", $date);
echo "$date_str: $value<br>\n";
$value++;
if ($value > "D") {
$value = "A";
}
}
?>
注意:虽然变量具有日期后缀,但它们包含 UNIX 时间值,而不是某种日期对象。