<?php$rc = array("07-12"=>"同学聚会", "07-21"=>"信用还贷", "07-23"=>"购买商品");$date = "07-23";foreach($rc as $key=>$value){if($key == $date){echo "<script>alert('".$key."日备忘:".$value."')</script>";break;}else{echo "<script>alert('无备忘')</script>";break;}}?>
休憩はしてませんでしたか?
上記と同様、10行目は改行できません
$rc = array("07-12"=>"同学聚会", "07-21"=>"信用还贷", "07-23"=>"购买商品");$date = "07-23";$msg = '';foreach($rc as $key=>$value){ if($key == $date){ $msg = "<script>alert('".$key."日备忘:".$value."')</script>"; break; }}if(! $msg) $msg = "<script>alert('无备忘')</script>";echo $msg;
$rc = array("07-12"=>"同学聚会", "07-21"=>"信用还贷", "07-23"=>"购买商品");$date = "07-23";$msg = '';foreach($rc as $key=>$value){ if($key == $date){ $msg = "<script>alert('".$key."日备忘:".$value."')</script>"; break; }}if(! $msg) $msg = "<script>alert('无备忘')</script>";echo $msg;
しかし、なぜこのように書かれているのかはわかりません。
このように書くとわかりやすいでしょうか?
$rc = array("07-12"=>"同学聚会", "07-21"=>"信用还贷", "07-23"=>"购买商品");$date = "07-23";$msg = "<script>alert('无备忘')</script>";//给个初值foreach($rc as $key=>$value){ if($key == $date){ //如果存在就修改 $msg = "<script>alert('".$key."日备忘:".$value."')</script>"; break;//只是为了提前结束循环 }}echo $msg;
xuzuning兄さん、6階のコードがとてもわかりやすいです。
netbeans-xdebug を使用して 1 階のコードを実行し、変数値の変化を 1 ステップで確認し、1 階のコードのエラーを理解しました。
1 階のコードの 3 行目が $date = "07-21"; の場合、最初のループでは、$key は 07-12 であり、この時点では $date07-21 とは異なります。ポップアップする js プロンプト ボックスは、ポップアップしたい内容である「07-21st Memo: Credit Repayment」ではなく、「No memo」です。
正しい方法は、この時点ではプロンプト ボックスをポップアップせず、$key==$date のときにプロンプト ボックスをポップアップすることです。
この場合、1 つのループ内に 2 セットのエコーを含めることはできません。
非常に基本的な質問なので、注意しないと巻き込まれてしまう可能性があります。