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

私与える:次の文字を増分せずにアルファベット順に取得するにはどうすればよいですか? (PHP)

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

私がしたいことは次のとおりです。

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

これを行う最も簡単な方法は?

+0

'$ i + 1'で' ++ $ i'を置き換えてください。 –

+3

@ shiplu.mokadd.im:悪い考えです。 '++'はPHPの文字列をインクリメントするためにも機能します。 '+ 1'はそうではありません。 –

答えて

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 
+0

これは私がやったことですが、他のものもうまくいくでしょう。 –

7

シンプル:ちょうどそれをインクリメントする前に値をコピーすることについて

for ($i=A;$i<L;){ // remove loop increment     
    echo $i; 
    echo '->'; 
    echo ++$i; 
    echo ', '; 
} 
3

使用範囲()配列が、私はインクリメント++を適切なint型を使用してアルファベットを取得します。

1

ジュリアンが述べたように、範囲は、このためにセクシーである:range

$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)]); 
} 

詳細情報。

関連する問題