0

私は次のようなデザインを持っています:

-------------------------------
| | | | | |
| | 2 | | |
| | | | | |
------------ 1 |
| | | | | |
| | 3 | | |
| | | | | |
-------------------------------

しかし、プログラマー/デザイナーは<div>s を次のように配置しました。

<div id="2">2</div>
<div id="3">3</div>
<div id="1">1</div>

適切な CSS を使用すると、視覚的なものとして整列されます。現在、彼はデータベースからデータをエコーするループを作成しています。HTML 階層を変更したくない場合、ループの階層は次のようになります。

<div id="2"><?php
  for( condition ) {
      execute News 2 here
  } ?></div>
<div id="3"><?php
  for( condition ) {
     execute News 3 here
  } ?></div>
<div id="2"><?php
  for( condition ) {
     execute News 1 here
  } ?></div>

しかし、本当の問題は次
のとおりです。$counterがインクリメントしているため、最初に宣言された値 (ゼロ) はループごとにインクリメントされ、デフォルト値はインクリメントされます。したがって、最初のループでは$counter=0、 が 1 にインクリメントされます。2 番目のループでは$counter=1、 が 2 にインクリメントされます。したがって、3 番目のループでは、$counter=2 が 3 にインクリメントされます。ただし、$counter をそれぞれ 2、3、1 ずつインクリメントする必要があります。

したがって、本当の質問は次のとおりです。

  • いくつかの前のループの後に宣言されている、インクリメントなしでデフォルトの $counter 値をフェッチする方法は?

私はそれが幼稚な質問であることを知っています。しかし、私はここで立ち往生しています。宣言することはできますglobalか?

4

1 に答える 1

0

値 (つまり、値の任意の順序である 2,3,1) を (グローバル) 配列に格納し、実際の「カウンター」を配列内の値に設定するだけです。

$values = array(2, 3, 1);
for ($i = 0; $i < x; $i++) {
    $div = $values[$i];
    do_something_with_div($div);
}
于 2013-04-24T11:54:13.307 に答える