我的數組:獲得前一陣值的foreach
$arr = array("jan","feb","mar","apr","mei","jun","jul","agu","sep","okt","nov","des");
然後我做一個foreach
foreach($arr as $ar){
echo $ar;
}
,將輸出一月到DES
我的問題是如何顯示上一當前鍵中的值?
例如,當我到二月,我想顯示揚太,當我到七月,我想顯示鈞等
我的數組:獲得前一陣值的foreach
$arr = array("jan","feb","mar","apr","mei","jun","jul","agu","sep","okt","nov","des");
然後我做一個foreach
foreach($arr as $ar){
echo $ar;
}
,將輸出一月到DES
我的問題是如何顯示上一當前鍵中的值?
例如,當我到二月,我想顯示揚太,當我到七月,我想顯示鈞等
$previousValue = null;
foreach($arr as $ar){
echo $ar;
if($previousValue) {
echo $previousValue;
}
$previousValue = $ar;
}
您可以使用按鍵來獲得前一個關鍵。
foreach($arr as $key => $ar){
$prev = $arr[$key-1];
echo "previous value -" .$prev;
}
你也有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';
for ($i = 0; $i <count($arr); $i++) {
echo $arr[$i]
if($i > 0){
echo $arr[$i-1]
}
}
'$ arr.length'不是PHP,'$ i ++ 1'不代表任何東西('$ i ++'本身增加1) – 2010-11-10 20:03:11
錯字和太多語言在我的大腦中:/ – dstarh 2010-11-10 20:04:59
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;
}
看到這個問題,answer。
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;
}
這對於使用字符串和非順序索引的數組來說具有額外的優勢。 – Aether 2010-11-10 21:58:57