【问题标题】:Adding new items into PHP array and saving previous size of the array将新项目添加到 PHP 数组中并保存数组的先前大小
【发布时间】:2016-05-30 10:46:45
【问题描述】:

到目前为止,我有以下代码:

$months = array();
$numJoin = date("n",strtotime($me['joinTime']));
$numLast = date('n', strtotime('Dec 31'));
$numCurrent = date("n",strtotime('2016-06-01'));
array_push($months, date("F", strtotime($me['joinTime'])));
for($i = ($numJoin + 1); $i <= $numLast; $i++) {
    if($numCurrent>$numJoin) {
        $dateObj = date_create_from_format('!m', $i);
        array_push($months, $dateObj->format('F'));
    }
    $numCurrent= -1;
}

我在这里要做的是将当前月份添加到数组中,并将前几个月保存在数组中,例如:

开始月份是 -> 五月 六月开始 -> 我将六月添加到数组中(现在我应该在数组中添加五月和六月)。

七月开始 -> 我将七月添加到数组中(现在我应该在数组中添加五月、六月和七月)。

我怎样才能做到这一点?当前解决方案仅适用于 +1 个月。我不能添加超过 1 个月:/

附:只有在新月份开始时才应添加新项目,并且应保存数组的先前内容...

【问题讨论】:

  • 你是几月份比较踢数组的?
  • 您是否将新创建的数组保存在同一个变量中?
  • @FrayneKonok 无论这个变量中的月份是什么:$numJoin = date("n",strtotime($me['joinTime']));我从数据库中获取月份的值。这是一个存储在数据库中的加入日期......这是我在新月份开始时比较的开始月份......例如加入日期是五月-> 当六月开始时,我应该有 2 个月的时间:五月和六月
  • @perkes456,你的答案已经准备好了。

标签: php arrays date


【解决方案1】:

开始,您需要检查您的月份是否小于当前月份。 Check Online

$months = array();
$num = date("n",strtotime($me['joinTime'])); //join month number
$now = date("n"); //Current month number

for($i = $num; $i <= $now; $i++){
    $dateObj = DateTime::createFromFormat('!m', $i);
    array_push($months, $dateObj->format('F'));
}
print_r($months);

【讨论】:

  • 嗨 Frayne,这会一直添加到 12 月之前的所有月份吗? :)
  • P.S.我需要加入月份和将在一个数组中一起启动的月份......我应该将它们全部合并到一个数组中吗?
  • 根据当前月份,数组开始更新。
  • 是的,这就是我所需要的......但我还需要几个月和开始月份只在一个数组中,因为我在我的视图中将它们作为一个数组获取,而不是两个。 .. 像这样:五月(开始),六月(开始),七月(开始),都在一个数组中 :)
  • 那么你怎么能尊重月份呢????我有点困惑。你能解决这个问题吗?
【解决方案2】:

我仍然有点困惑,但我认为这就是你所追求的......所有月份的名称​​在加入月份之后直到当前月份......

$me = array('joinTime'=>'2016-03-01');

$dtCurrent = strtotime($me['joinTime']);
$arrMonths = array();
while($dtCurrent < time()) {
    $dtCurrent = strtotime("+1 month",$dtCurrent);
    $arrMonths[] = date('F',$dtCurrent);
}

var_dump($arrMonths);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2021-10-27
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多