1

私はこの種の配列を持っています

Array
(
[12-12] => 9
[01-13] => 10
[02-13] => 11
[03-13] => 14
[05-13] => 16
[09-13] => 17
)

シンプルで

 foreach ($arr as $key=>$value)

すべてのキーと要素にアクセスできます。

しかし、2番目の要素から前の要素も取得する必要があります:

$i=1;
foreach ($arr as $key=>$value) {
  if ($i==1) {
    echo $key .'=> 0 '.  $value;
  } else {
    echo $key .'=>'. $arr[$key-1] .'=>'. $value;
  }
 $i++
}

同様のものを印刷する必要があります:

12-12 => 0 => 9
01-13 => 9 => 10
02-13 => 10 => 11

等々

「明らかに」文字列キーのため、機能しません。何か助けはありますか?ありがとうございました!

4

5 に答える 5

1

前のキーを保存するだけです。

    $prevKey = null;
    foreach ($arr as $key=>$value) {
      if ($i==1) {
        echo $key .'=> 0 '.  $value;
      } else {
        echo $key .'=>'. $arr[$prevKey] .'=>'. $value;
      }
    $prevKey = $key;

    }
于 2013-09-06T18:58:44.650 に答える
1

あなたは正しい考えを持っていましたが、使い方が間違っていました:

$prev = null;
foreach ($arr as $key=>$value) {
    if (is_array($prev)) {
        print_r($prev)
        echo $key .'=> 0 '.  $value;
    } else {
        echo $key .'=>'. $arr[$key-1] .'=>'. $value;
    }
    $prev = array($key, $value);
}
于 2013-09-06T18:59:08.263 に答える
1

各反復で前の値を保存する

$prevValue = 0;
foreach ($arr as $value) {
    echo $key . '=>' . $prevValue . '=>' . $value;
    $prevValue = $value;
}
于 2013-09-06T18:59:14.793 に答える