

以下のプログラムで教えていただけないでしょうか
<!DOCTYPE html>
<html><head>
<title>P222 Sample7-7 小計を求める関数</title>
</head><body><?php
$product = array(array(100,5),array(20,16),array(25,40));
?>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>単価</th>
<th>個数</th>
<th>小計</th>
</tr>
<?php
for($i=0; $i<3; $i++){
$p = $product[$i][0];
$n = $product[$i][1];
$t = total($p, $n);
print "<tr><td>{$p}円</td><td>{$n}個</td><td>{$t}円</td></tr>\n";
}
function total($pr,$n)
{
return $pr*$n;
}
?>
</table></body></html>
-------------------------------------------------------------------------------------------
以上ですが、
for($i=0; $i<3; $i++){
$p = $product[$i][0];
$n = $product[$i][1];
の部分の[0];[1];ですが、配列の”要素”か”添え字”に該当する部分の[0]と[1]ですが
どんな働きがあるのでしょうか?
以上よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
> $product = array(array(100,5),array(20,16),array(25,40));
これは、視覚的に表すと、以下のようなことです。
$product
[0]
[0] ⇒ 100
[1] ⇒ 5
[1]
[0] ⇒ 20
[1] ⇒ 16
[2]
[0] ⇒ 25
[1] ⇒ 40
二次元配列なので、添字は2つ指定して、初めて目的の値を得ることができます。
[0]、[1]という指定は、おまじないでもなんでもなく、目的の値を得るための添字になります。
つまり、
$product[0][0]は100
$product[0][1]は5
$product[1][0]は20
$product[1][1]は16
$product[2][0]は25
$product[2][1]は40
ということになります。
ご回答が遅れましてすみませんでした。
その後ですが・・二次元配列3次元配列等の多次元配列ですが、私はc言語では勉強していなかったみたいです。 なので一通り読みました。
二次元配列なので、”添字は2つ”指定して、初めて目的の値を得ることができます。
[0]、[1]という指定は、おまじないでもなんでもなく、目的の値を得るための添字になります。
理解度は65%ぐらいですが、かなりわかってきました。
ちなみに
$p = $product[$i][0]; 単価
$n = $product[$i][1]; 個数
$t = total($p, $n); 小計
で、エーと・・・
まだ他にわからないところがありますが、暇暇
質問したいと思います。
今後ともよろしくお願いいたします。
No.1
- 回答日時:
>どんな働きがあるのでしょうか?
添え字を利用して配列内のデータへアクセスできる
前も同じケースで回答したかと思いますが
$product = array(array(100,5),array(20,16),array(25,40));
は明示的に書くと
$product = array(0=>array(0=>100,1=>5),1=>array(0=>20,1=>16),2=>array(0=>25,1=>40));
$iで、1次の0,1,2をつかって2次の配列にアクセス、
その配列内の0番目の要素と、1番目の要素にアクセスしています
こればっかりは配列とはこういうものだと覚えるしかありません
レスご回答くださいまして誠にありがとうございます。
現在、配列を読み直しておりました。
以前も同等の質問をしていたのを思い出しました。(悪しからず・・・)
$product = array(0=>array(0=>100,1=>5),1=>array(0=>20,1=>16),2=>array(0=>25,1=>40));
少し知れべてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 最大値と最小値を求めて...
-
C言語の配列をPush(追加)する...
-
行列
-
fgetc関数について
-
プルダウンメニューにDBの内容...
-
String だと「 ByRef引数の型が...
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
PHP掲示板で新着順に表示させた...
-
自動で番号を振りたい
-
配列からプルダウン用のHTMLを生成
-
配列同士の足し算のループ処理
-
別ファイルの構造体の値を読み...
-
ログファイルが一定行数を超え...
-
配列にある文字列を1つの変数に...
-
エラーメッセージ(無効な間接...
-
csvの文字置換プログラム
-
ネストが深い時のforeachはどう...
-
stdClass Objectを連想配列のよ...
-
phpの関数について質問です!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
cakephpでのトランザクション処...
-
行列
-
読み(あ行~わ行)ごとに分け...
-
特定の文からメールアドレスの...
-
c言語 単位行列
-
STLのvectorで作った配列をメン...
-
多次元配列をエンコードする関...
-
2次元配列を1次元配列にするには
-
phpで、配列の値が意図せず変わ...
-
Delphiで別unitで宣言した「TAr...
-
連想配列に追加ってできるン?
-
正規表現
-
配列の並びについて
-
PHPでCSVを出力するさいに、ル...
-
pascalについて知りたいのです...
-
文字列の取得について
-
ファイルの書き込みについて教...
-
数独かを判断するプログラム
-
文字列の並び替え
おすすめ情報
https://oshiete.goo.ne.jp/qa/9231613.html
は私ごとですが、今後の参考にするためにアドレスをを記述しました。
naktak様
わかりやすいご回答をくださいまして誠にありがとうございました。
なるほどですね・・・
以前質問した記憶を思い出しました・・今回も同じところで引っかかりましたが・・
プログラミングは
1度で覚えられる代物のではないので、何回となく繰り返すうちに身に付くと思います。
解決までに少々お待ちくださいませ。
今後ともよろしくお願いいたします。