0

乗車時間がテーブルに挿入されるタクシーアプリがあります。n 回ごと (例では 5 回) の乗車は無料です。私が必要としているのは、ユーザーが 3 日ごとに 50 回以上の乗車を無料にする必要があることです。以下のコードでは、5 番目ごとに実行できましたが、50 を超えると、すべての乗り物から 3 番目ごとにカウントを開始し、すべてがマッシュアップされます。50 までは 5 日おきに数え、その後は 3 日おきに数えることはできますか?

    $i=$rows;
    if ($rows>50){
        if ($i != 0 && $i%3 == 0){
        echo "<p>This ride is free</p>";
        }
        elseif ($i%3 == 2){
        echo "<p>Next ride is free</p>";
        }
    $i--;
    break;
    }
    elseif ($rows<=50){
        if ($i != 0 && $i%5 == 0){
        echo "<p>This ride is free</p>";
        }
        elseif ($i%5 == 4){
        echo "<p>Next ride is free</p>";
        }
    $i--;
    break;
    }
4

3 に答える 3

2

これはあなたが探しているものだと思います。これがどういうわけかより大きなループの中にない限り、それらの目的を見ることができないので、私は$i--;and をbreak;取り出しましたが、それでもそれらの目的を理解していません。いずれかの方法。

$i=$rows;
if ($rows>50){
    $i = $i - 50;
    if ($i != 0 && $i%3 == 0){
        echo "<p>This ride is free</p>";
    } else if ($i%3 == 2){
        echo "<p>Next ride is free</p>";
    }
} else if ($rows<=50){
    if ($i != 0 && $i%5 == 0){
        echo "<p>This ride is free</p>";
    } else if ($i%5 == 4){
        echo "<p>Next ride is free</p>";
    }
}

http://sandbox.onlinephpfunctions.com/でテスト済み

for($rows=0;$rows<75;$rows++){
  $i=$rows;
  echo $rows;
  if ($rows>50){
      $i = $i - 50;
      if ($i != 0 && $i%3 == 0){
          echo ": This ride is free";
      } else if ($i%3 == 2){
          echo ": Next ride is free";
      }
  } else if ($rows<=50){
      if ($i != 0 && $i%5 == 0){
          echo ": This ride is free";
      } else if ($i%5 == 4){
          echo ": Next ride is free";
      }
  }
  echo "\n";

結果:

0
1
2
3
4: Next ride is free
5: This ride is free
6
7
8
9: Next ride is free
10: This ride is free
11
12
13
14: Next ride is free
15: This ride is free
16
17
18
19: Next ride is free
20: This ride is free
21
22
23
24: Next ride is free
25: This ride is free
26
27
28
29: Next ride is free
30: This ride is free
31
32
33
34: Next ride is free
35: This ride is free
36
37
38
39: Next ride is free
40: This ride is free
41
42
43
44: Next ride is free
45: This ride is free
46
47
48
49: Next ride is free
50: This ride is free
51
52: Next ride is free
53: This ride is free
54
55: Next ride is free
56: This ride is free
57
58: Next ride is free
59: This ride is free
60
61: Next ride is free
62: This ride is free
63
64: Next ride is free
65: This ride is free
66
67: Next ride is free
68: This ride is free
69
70: Next ride is free
71: This ride is free
72
73: Next ride is free
74: This ride is free
于 2013-09-11T19:51:30.427 に答える
0

このコードを使用すると、53 番目、56 番目などの乗り物は無料になります。

    if ($rows>50){
    if ($i != 0 && ($i - 50) %3 == 0){
于 2013-09-11T19:52:06.727 に答える
0

それらの休憩は何ですか。のステートメント?そのコードはループ内にありますか? もしそうなら$i=$rows;、ループ内の行もですか?その場合、$rows は常に > 50 になるためです。

ループコード全体を質問に投稿して、より良いビューを得る必要があります。

于 2013-09-11T19:47:43.847 に答える