アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPを勉強中です。
勉強の為に思いついたものをPHPで書いてみようと思い、ネタが古いですが100までの数字を表示し、見やすいように3桁揃えで10ずつで改行して、3の倍数と3のつく数字を太字で表示するプログラムを書いてみました。なんとなくできたようなかんじなのですが、30だけ太字になりません。原因がわかる方がいらっしゃれば教えていただけたら嬉しいです。よろしくお願いします。

<?php
for($i = 1; $i <= 100; $i++){
if($i % 10 == 0) {
echo sprintf('%03d', $i)." "."<br>";
}
elseif($i % 3 == 0) {
echo('<strong>'.sprintf('%03d', $i)." ".'</strong>');
}elseif(strpos($i,"3") !== false) {
echo('<strong>'.sprintf('%03d', $i)." ".'</strong>');
}else{
echo sprintf('%03d', $i)." ";
}
}
?>

A 回答 (2件)

30を10で割るとあまりが0なので仕様が競合していますね


とりあえずこんな感じでは?

<?php
for($i = 1; $i <= 100; $i++){
$str=sprintf("%03d", $i);
if(($i % 3) == 0 or strpos((string) $i,"3") !== false) {
echo("<strong>".$str."</strong>");
}else{
echo $str;
}
echo " ";
if($i % 10 == 0) echo "<br>\n";
}
?>
    • good
    • 0
この回答へのお礼

意図した通りに表示されました!
スマートな回答ありがとうございました。
自分のと見比べてどこがダメだったのか研究してみたいと想います。
本当にありがとうございました!

お礼日時:2013/03/08 08:31

>if($i % 10 == 0) {


>echo sprintf('%03d', $i)." "."<br>";
>}

これいらないだろ
削ったあと、elseifはいきなり登場できないのでifに。

http://ideone.com/4L0rJM
    • good
    • 0
この回答へのお礼

リンク先のプログラムありがとうございます!
見比べて勉強してみたいと思います。
ありがとうございました!

お礼日時:2013/03/08 08:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!