PHPのforeach文での変数$juiceの意味とは

このQ&Aのポイント
  • PHPのforeach構文の中の変数$juiceの意味について説明します。
  • $juiceは配列$fruits_juiceの要素の値を代入する変数です。
  • foreach文は配列の要素を順番に処理するため、$juiceには配列$fruits_juiceの要素の値が順番に代入されます。
回答を見る
  • ベストアンサー

PHP foreach文

PHPのforeach構文なのですが以下ソースコードの13行目、foreach文の中の「$juice」なのですが、どこから出てきた物なのでしょうか? 今PHPの参考サイトを見ながら学習という形をとっているのですが 「$juice」が何処から出てきた物かわかりません。 サブライムテキストのラインハイライトで掛けても見つからなかったので... 参考URL http://creive.me/archives/8719/ <html> <head><title>accesslog.php</title></head> <body> <?php $fruits_juice = array( 'orange' => 'orange juice', 'melon' => 'melon juice', 'grape' => 'grape juice', 'banana' => 'banana juice', 'strawberry' => 'strawberry juice' ); foreach ($fruits_juice as $fruit => $juice) { echo $fruit . "(果物) => " . $juice . "(ジュース)<br>"; } ?> </body> </html>

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

foreachの構文で、配列のキーと値を同時にあつかう書き方です。 この場合、$fruitにキー、$juiceに値が入ります。 学習中に構文について「あれ?」と思う書き方が出てきたら、参考URLにあるPHPマニュアルを参照してみると助けになります。 勉強がんばってください応援しています。

参考URL:
http://php.net/manual/ja/control-structures.foreach.php

関連するQ&A

  • 配列に新しい値を加える

    配列に新しい値を加えようとしているのですが、どうもうまくいってくれません。array_push を使用してもうまくいかないのでどうしたものかと悩んでいます。 $fruits = "banana melon orange strawberry"; $fruits = explode (' ', $fruits); $fruits = array_push ($fruits, "apple"); print_r($fruits); とすると 5 が表示されます。一方3行目を消すと Array ( [0] => banana [1] => melon [2] => orange [3] => strawberry ) が表示されます。 配列に新しい値を加えるやり方をご存知の方おられましたらご教授くださるとうれしく思います。

    • ベストアンサー
    • PHP
  • PHPのWarningとは?

    PHP超初心者です。 参考本に書いてあるとおり、以下のアクセスログを作りました。 <html> <head><title>Access Log</title></head> <body> <?php print(date("Y/m/d H:i:s")."<br/>\n"); print("<p> access log:</p>\n"); $filepointer=fopen("./log/php-accesslog","a+"); flock($filepointer,LOCK_EX); fputs($filepointer,date("Y/m/d H:i:s").$_SERVER["REMOTE_ADDR"]."\n"); flock($filepointer,LOCK_UN); rewind($filepointer); while(!feof($filepointer)){ $fileline=fgets($filepointer); print($fileline."<br/>"); } fclose($filepointer); ?> </body> </html> で、開いてみると、 2007/01/24 12:51:00 access log: というふうにアクセスログが出るのですが、そのあとに Warning: fopen(./log/php-accesslog) [function.fopen]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\php10\accesslog.php on line 7 のような、warningがとめどなくズラーっと表示されてしまいます。 この意味と対処法がありましたらおしえてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • forEachをIEで使う方法はありますか?

    下記のコードは、javascriptのforEachを使って、配列の要素に対して順に処理をしていくものです。 forEachはFirefoxやChromeには対応していてInternetExprolerでは対応していないところまでは 調べて分かったのですが、その対策が分かりませんでした。 InternetExprolerでも動かすためにはどのようにしたらよいのでしょうか。 <html lang="ja"> <head> <title>テスト</title> </head> <body> <script type="text/javascript"> function aaa() { var ary = ["1", "2", "3"]; ary.forEach(bbb); function bbb(ccc) { alert(ccc); } } aaa(); </script> </body> </html>

  • PHPで計算問題

    PHPで税抜き価格100円のりんご3個と、 税抜き価格150円のグレープを2個購入した際の合計金額(税込み)を計算し表示するとどのようなプログラムになりますか?。(消費税は10%とします。) JavaScriptだと以下のようになります。(8%で計算しています。) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>JS計算</title> <script> var apple = 100; var grape = 150; num = ((apple * 3) + (grape * 2 )) * 1.08; document.write('<p>合計: ' + num + '</p>'); </script> </head> <body> </body> </html>

    • ベストアンサー
    • PHP
  • PHPのチェックボックスでforeachの警告出る

    UbuntuにXPMPPを入れてPHPの勉強してます。複数選択可能なチェックボックスの値を取得しようとしているのですが送信して受信側のページを開くと「Warning: Invalid argument supplied for foreach()」が出ます。正しく複数選択のチェックボックスの値を送受信する方法を教えてください。なお、入力ミスかと思い、http://www.7key.jp/hp/php/memo5.htmlのコピペをしてみましたが警告が出続けます。以下にそのページのソースを示します。 送信側のページのソースは次のようになっています。 <?php echo '<?xml version="1.0" encoding="UTF-8"?> '; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>送信</title> </head> <body> <form action="response.php" method="post"> <input type="checkbox" name="sample" value="1" checked="checked"> <input type="checkbox" name="sample" value="2"> <input type="checkbox" name="sample" value="3"> <input type="submit" value="sending" /> </form> </body> </html> 受信側のソースは次のようになっています。 <?php echo '<?xml version="1.0" encoding="UTF-8"?> '; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>受信</title> </head> <body> <?php foreach($_POST['sample'] as $key => $val){ echo "$key : $val \n"; } ?> </body> </html>

    • 締切済み
    • PHP
  • 再帰の仕方

    現在配列の出力結果が↓なのですがこれを array(2) { [0]=> string(6) "orange" [1]=> array(2) { [0]=> string(6) "apple" [1]=> array(2) { [0]=> string(6) "banana" [1]=> array(2) { [0]=> string(10) "Strawberry" } } } } ↓こっちのように変えたい場合の処理がどうしてもできません。 array(2) { [0]=> string(6) "orange" [1]=> string(6) "apple" [2]=> string(6) "banana" [3]=> string(10) "Strawberry" } 今自分がやってる途中のものです↓ $fruit = array("orange", array("apple", array("banana", array("Strawberry")))); function first_array($fruit) { foreach($fruit as $key => $value) { if(! is_array($value) === true ) { echo $value; } else { first_array($value); } } } $new_array = first_array($fruit); echo で orangeapplebananaStrawberry と表示はされるのですが、 配列に入れる方法がわかりません。 普通にこの部分を ~ if(! is_array($value) === true ) { $array[] = $value; } ~ とすると上書きされてしまっているのかな? 一個しかデータが残ってないのです・・・。 ご教授ください。

    • ベストアンサー
    • PHP
  • PHPについて教えてください

    下記のindex.htmlとcheck.phpを別々にURLに入力すると正しく表示されるのですが 横の送信ボタンを押したときにcheck.phpにジャンプしてくれません どうしてでしょうか? index.html <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <from method="post" action="check.php"> <input name="nickname" type="text" style="width:100px"> <input type="submit" value="送信"> </from> </body> </html> check.php <DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php print'ようこそ'; ?> </body> </html>

    • 締切済み
    • PHP
  • PHPのupdate文はこれでいいのでしょうか?

    php初心者ですが、どうしても出来ないので ご教授お願いいたします。 phpでmysqlのupdate をしたいのですが、 参考書などは私が作ろうとしている物より複雑で シンプルに書き換えることが出来ませんん。 会員登録をPHPで作ろうとしています。 会員自身でPR文と更新日を書き換えられるようにしたいのですが、 このような書き方でいいのでしょうか? **他のページにフォームを作ってこちらに送っています バージョンは MYSQL ver4.0.26 PHP ver4.2.2 phpMyAdmin ver2.4.6  です。 <?PHP //データベース関連のデータをインクルードします require_once("dbini.php"); //MySQLに接続します $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); //データベースを選択します $selectdb = mysql_select_db($DBNAME, $con); //MySQLレコード修正 $sql = "update mem set regdate = now() ,pr1 = '$pr1' where id = '00001' "; mysql_query($sql); echo "レコードの修正が完了しました"; exit; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title>修正ページ-2</title> </head> <body> </body> </html>

    • ベストアンサー
    • PHP
  • PHPの「こんにちは」の部分は表示できません

    環境はxp、apache2、php5です。 ただ今PHPの勉強をしています。 ローカル上で以下のようなsampleを作りました。 タイトルは表示できるのですが PHPの「こんにちは」の部分は表示できません。 これはPHPがうまくインストールされていない ということでしょうか? --------------------- <html> <head> <title>Sample</title> </head> <body> <?php print "こんにちは"; ?> </body> </html>

    • ベストアンサー
    • PHP
  • php うまくできない

    PHPの勉強をしたくて <html> <head> <title>サンプル</title> </head> <body> <p>今日の日付は<?php echo date("Y/m/d"); ?>です。</p> </body> </html> のソースを作ったのですが、 実際ブラウザで見ると ------------------- 今日の日付はです。 ------------------- しか表示されません。 拡張子はhtmlです。 何がダメなのでしょうか? 何かをインストールしないとだめですか?

    • ベストアンサー
    • HTML

専門家に質問してみよう