ホームページ > バックエンド開発 > PHPチュートリアル > [配列] どこが間違っているのでしょうか?

[配列] どこが間違っているのでしょうか?

WBOY
リリース: 2016-06-23 13:37:25
オリジナル
1145 人が閲覧しました

<?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;}}?>
ログイン後にコピー


3 行目が $date = "07-12" の場合、プロンプト ボックスがポップアップ表示されます: 07-12 Day Memo: Class Reunion
3 行目が $date = "07-21" の場合、または : $date = "07-23"、上記と似ているはずですが、プロンプト ボックスがポップアップ表示されます: メモはありません
エラーはどこですか?


ディスカッションへの返信(解決策)

休憩はしてませんでしたか?

上記と同様、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 セットのエコーを含めることはできません。

非常に基本的な質問なので、注意しないと巻き込まれてしまう可能性があります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート