5

ダミーデータの長いクエリを作成しています。for ループを数千回実行しています。各ループで、ダミー ファイル名 1.png、2.png などに使用されるインクリメント変数を使用して、クエリに新しい行を追加します。外部キー ID ですが、ループの 10 回の反復ごとにのみ必要です。誰でも助けることができますか?ありがとう。

$var = '';
for($i=0;$i<100;$i++){
    $path = '/test' . $i . '.pdf';
    $mess = 'Test message '. substr(md5($i), 0, 10);
    $did = 0;//How to increment this var by 1 every 10 iterations?
    $var .= "INSERT INTO `message` (`design_id`, `path`, `message`) VALUES ('$did', '$path', '$mess');"."<br />";
}
echo $var;
4

4 に答える 4

24

$i+=10

例:

for ($i=0; $i<100; $i+=10) {
}
于 2014-01-28T10:11:50.497 に答える
7

モジュラス演算子を使用できます:

$did = 0;
for($i=0;$i<100;$i++){
    $did += $i % 10 == 9;
}

$i % 10は 0 から始まり、9 (10 - 1) まで増加し、無限に「ラップ アラウンド」します。$did9 に評価されるたびに増加します。これは 10 回の反復ごとです。

興味深いことに、 [0, 9] の範囲の任意の値を比較に使用でき、それでも$did同じ割合で増加します。違いは、最初の増加がいつ発生するかです。9 回の増加を選択すると、10 回目、20 回目などの反復で発生します。代わりに 0 を選択すると、1 日、11 日、21 日などで増加します。

最後に、この手法が新しい場合は、追加の括弧を使用する方が快適に感じるかもしれません。たとえば、

$did += ($i % 10 == 9);

またはスタンドアロンのifステートメントでさえ。

于 2012-05-10T13:16:18.350 に答える
0

分割して床に置く。

$did = フロア(i / 10);

于 2012-05-10T13:19:20.720 に答える
0
$var = '';
$did = 0;
for($i=1;$i<=100;$i++){
    $path = '/test' . $i . '.pdf';
    $mess = 'Test message '. substr(md5($i), 0, 10);
    if((i % 10) == 0){
          $did++;
     }
    $var .= "INSERT INTO `message` (`design_id`, `path`, `message`) VALUES ('$did', '$path', '$mess');"."<br />";
}
echo $var;
于 2012-05-10T13:19:45.387 に答える