※ ChatGPTを利用し、要約された質問です(原文:foreachと連想配列変数について)
PHPのforeachと連想配列変数についての疑問
このQ&Aのポイント
PHPのforeachと連想配列変数についての疑問について説明します。
foreachと連想配列変数を使用する場合の動作について具体的な例を挙げながら解説します。
foreachとは、配列やオブジェクトの要素を順番に取り出すための制御構文であり、その動作を理解することでコードの理解が深まります。
はじめまして。
初めて質問します。
私はあまりプログラム知識がないのですが、PHPに興味があり独学でPHPを勉強しているのですが、よくわからない個所があって困っています。
<?php
$list[0]["code"] = "0100:";
$list[0]["name"] = "ミルクパン";
$list[1]["code"] = "";
$list[1]["name"] = "イチゴパン";
$list[2]["code"] = "0301:";
$list[2]["name"] = "メロンパン";
foreach($list as $data) {
$product = "";
foreach($data as $value) {
if ($value == "") continue 2;
$product .= $value;
}
print $product."\n";
}
?>
実行結果
0100:ミルクパン
0301:メロンパン
と本に書いてあるのですが、
0100:ミルクパン
0301:メロンパン
と表示されるのがよくわかりません。
$product .= $value;
で、なぜ "0100:"と"ミルクパン"が表示されるのでしょう。
普通のforeach($list as $value)ならイメージできるのですが、
二重にforeachがあるので、
($list as $data)
($data as $value)
の意味がよくわからないです。
どなたかご教授していただけませんでしょうか?
お礼
回答ありがとうございます。 勉強不足な点で分らないところがありますが >最初のforeachは、[0][1][2]・・・ が回ります。 >つまり、内側に入っている foreachは、[0]のデータを回しますから [code][name] が順番に回ります。 一旦、連想配列変数について調べてみようと思いました。 内側に入っているforeachの動きなども[code][name] が順番に回る仕組み もまだ理解できないのですが、 ようやく全体像が見えてきたのと道しるべをしていただけた感じでやっぱり自分だけで考えているのと違って大変参考になります。 回答を参考にして勉強してみます^^