4
for ($i=A;$i<L;$i++){                   
    echo $i;
    echo '->';
    echo ++$i;
    echo ', ';
}

私に与えます:

A->B、C->D、E->F、G->H、I->J、K->L

私が欲しいのは:

A->B、B->C、C->D、D-​​>E、E->F、F->G

これを行う最も簡単な方法は何ですか?

4

4 に答える 4

7

単純:

for ($i=A;$i<L;){  // remove loop increment                 
    echo $i;
    echo '->';
    echo ++$i;
    echo ', ';
}
于 2012-04-24T22:32:52.003 に答える
3

range() を使用してアルファベットを配列として取得し、適切な int i++ インクリメントを使用します。

于 2012-04-24T22:35:41.730 に答える
2

値をインクリメントする前に値をコピーするのはどうですか:

for ($i = 'A'; $i < 'L'; $i++) {                   
    $j = $i;
    $j++;
    echo "$i->$j, ";
}

Ps。文字列定数は引用符で囲む必要があります。そうしないと、ログは次のような警告でいっぱいになります。

PHP Notice:  Use of undefined constant A - assumed 'A' in - on line 2
PHP Notice:  Use of undefined constant L - assumed 'L' in - on line 2
于 2012-04-24T22:33:18.457 に答える
1

ジュリアンが述べたように、範囲はこれにとって魅力的です。

$range = range('A', 'L');

// Had to subtract one from loop iteration total, otherwise the $i + 1 
// would throw an undefined index notice
for ($i = 0, $count = count($range); $i < ($count - 1); $i++) {
    echo sprintf('%s->%s,', $range[$i], $range[($i + 1)]);
}

範囲の詳細。

于 2012-04-24T22:56:39.013 に答える