Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取foreach中以前的数组值_Php_Arrays - Fatal编程技术网

Php 获取foreach中以前的数组值

Php 获取foreach中以前的数组值,php,arrays,Php,Arrays,我的阵列: $arr = array("jan","feb","mar","apr","mei","jun","jul","agu","sep","okt","nov","des"); 然后我做一个foreach foreach($arr as $ar){ echo $ar; } 这将输出jan到des 我的问题是如何在当前键中显示以前的值 例如,当我到达二月时,我也想显示一月,当我到达七月时,我想显示六月,等等。您可以使用这些键获取上一个键 foreach($arr as $key =

我的阵列:

$arr = array("jan","feb","mar","apr","mei","jun","jul","agu","sep","okt","nov","des");
然后我做一个foreach

foreach($arr as $ar){
  echo $ar;
}
这将输出jan到des

我的问题是如何在当前键中显示以前的值


例如,当我到达二月时,我也想显示一月,当我到达七月时,我想显示六月,等等。

您可以使用这些键获取上一个键

foreach($arr as $key => $ar){
    $prev = $arr[$key-1];
    echo  "previous value -" .$prev;
}
您还可以将以下内容作为内部数组指针:

$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
($i=0;$i 0)的
{
回声$arr[$i-1]
}
}
请参阅此问题和。

foreach($arr as$key=>$ar){
//检查我们不在一月(否则我们得到$key=-1,这不起作用)
如果($key!=0){
//打印上个月,然后打印本月
回声$arr[$key-1].-'.$ar.
; } } //或者,如果您希望能够滚动数年,那么: $last_key=end(数组_key($arr)); foreach($arr as$key=>$ar){ //检查一下,我们不是在一月 如果($key!=0){ //打印上个月,然后打印本月 回声$arr[$key-1].-'.$ar.
; }否则{ 回显$arr[$last_key].-'.$ar.
; } }
更具动态性

$arr  = array(
    "jan",
    "feb",
    "mar",
    "apr",
    "mei",
    "jun",
    "jul",
    "agu",
    "sep",
    "okt",
    "nov",
    "des"
);
$arr2 = $arr;
foreach ($arr as $k => $currVal) {
    unset($arr2[$k]);
    foreach ($arr2 as $k => $v) {
        $nextVal = $v;

        break;
    }
    echo "next val: " . $nextVal;
    echo "current val: " . $currVal;
}

这不是应该显示当前和以前的吗?这不会在第一次迭代中消失吗?这不会在循环中发生。。但它可能会发生。它是相对于当前元素的内部指针的。这仅在键为整数且按顺序排列时有效。这还有一个额外的优点,可以用于具有字符串和非顺序索引的数组。
for ( $i = 0; $i <count($arr); $i++) {
    echo $arr[$i]
    if($i > 0){
     echo $arr[$i-1]
   }
}
reset($array);
while($val=current($array))
{
    var_dump($val); // current
    var_dump(prev($array)); // previous
    next($array); // back to current
    next($array); // next
}
foreach($arr as $key => $value){
  if ($key > 0) {
   echo $arr[$key-1];
  }
  echo $value;
}
foreach ($arr as $key => $ar) {
    //check we aren't on jan (otherwise we get $key = -1 which doesn't work)
    if ($key != 0) {
        //print previous month followed by current month
        echo $arr[$key - 1] . '-' . $ar . '<br />';
    }
}

//OR, if you want to be able to roll through years then:

$last_key = end(array_keys($arr));
foreach ($arr as $key => $ar) {
    //check we aren't on jan
    if ($key != 0) {
        //print previous month followed by current month
        echo $arr[$key - 1] . ' - ' . $ar . '<br />';
    } else {
        echo $arr[$last_key] . ' - ' . $ar . '<br />';
    }
}
$arr  = array(
    "jan",
    "feb",
    "mar",
    "apr",
    "mei",
    "jun",
    "jul",
    "agu",
    "sep",
    "okt",
    "nov",
    "des"
);
$arr2 = $arr;
foreach ($arr as $k => $currVal) {
    unset($arr2[$k]);
    foreach ($arr2 as $k => $v) {
        $nextVal = $v;

        break;
    }
    echo "next val: " . $nextVal;
    echo "current val: " . $currVal;
}