如何从整数定义数组值


How do I define an array value from a integer?

好的下面我已经

附加了我的代码,我正在尝试使用$current_statement$next_statement来定义数组中的值。 $current_statement是 = 到 7,$next_statement是 = 到 8。我正在尝试做的是使用 $current_statement$next_statement 中的两个值定义数组中的第 7 和第 8 个值。

   <?
       $date = array('16-01-14','16-01-28','16-02-14','16-02-28','16-03-14','16-03-28',
       '16-04-14','16-04-28','16-05-14','16-05-28','16-06-14','16-06-28','16-07-14',
       '16-07-28','16-08-14','16-08-28','16-09-14','16-09-28','16-10-14','16-10-28',
       '16-11-14','16-11-28','16-12-14','16-12-28');    

        $currentdate = date('y-m-d');

        foreach ($date as $i => $d) {
        if ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1])) {
            $current_statement = $i;
            $next_statement = $i+1;
        } 
        }
    ?>

我正在尝试使用$current_statement$next_statement中的两个数值从数组中选择值。因此,例如,如果$current_statement = 到 7,它将从数组中选择第 7 个值并将其定义为单独的变量。如果$next_statement是 = 到 8,它将从数组中选择第 8 个值并将其定义为单独的变量。所以我可以很容易地回显出这两个变量。

我不完全清楚你的要求,所以这个答案有点猜测,当然我不应该这样做。但是你的意思是这样吗

<?php
    $date = array('16-01-14','16-01-28','16-02-14','16-02-28','16-03-14',
                  '16-03-28','16-04-14','16-04-28','16-05-14','16-05-28',
                  '16-06-14','16-06-28','16-07-14', '16-07-28','16-08-14',
                  '16-08-28','16-09-14','16-09-28','16-10-14','16-10-28',
                  '16-11-14','16-11-28','16-12-14','16-12-28');    
    $currentdate = date('y-m-d');
    foreach ($date as $i => $d) {
        if ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1])) {
            echo 'Current statement date = ' . $date[$i];
            echo 'Next statement date = ' . $date[$i+1];
        } 
    }
?>
在这种情况下,您

不需要您创建的 2 个变量,您只需使用 $i$i+1

我认为您需要防止索引越界异常:

$current_statement  = false;
$next_statement     = false;
foreach ($date as $i => $d) 
{
    if ($id<count($date)-1 && ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1]))) 
    {
        $current_statement  = $i;
        $next_statement     = $i+1;
    } 
}
if($current_statement)
{
    $current_date   = $date[$current_statement];
    $next_date      = $date[$next_statement];
}

很快,如果你不再需要 $current_statement 和 $next_statement 变量:

foreach ($date as $i => $d) 
{
    if ($id<count($date)-1 && ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1]))) 
    {
        $current_date   = $date[$i];
        $next_date      = $date[$i + 1];
    } 
}

忘记这个答案
你正在用这个克劳来防止:$i == count($date(-1