プロが教える店舗&オフィスのセキュリティ対策術

以下のプログラムで教えていただけないでしょうか
<!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]ですが
 どんな働きがあるのでしょうか?
 以上よろしくお願いいたします。

質問者からの補足コメント

  • https://oshiete.goo.ne.jp/qa/9231613.html
    は私ごとですが、今後の参考にするためにアドレスをを記述しました。

      補足日時:2016/05/25 14:06
  • naktak様
    わかりやすいご回答をくださいまして誠にありがとうございました。
    なるほどですね・・・
    以前質問した記憶を思い出しました・・今回も同じところで引っかかりましたが・・
    プログラミングは
     1度で覚えられる代物のではないので、何回となく繰り返すうちに身に付くと思います。
     解決までに少々お待ちくださいませ。
     今後ともよろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/05/25 14:27

A 回答 (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
ということになります。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ご回答が遅れましてすみませんでした。
その後ですが・・二次元配列3次元配列等の多次元配列ですが、私はc言語では勉強していなかったみたいです。 なので一通り読みました。
 二次元配列なので、”添字は2つ”指定して、初めて目的の値を得ることができます。
[0]、[1]という指定は、おまじないでもなんでもなく、目的の値を得るための添字になります。
  
 理解度は65%ぐらいですが、かなりわかってきました。
ちなみに
  $p = $product[$i][0]; 単価
$n = $product[$i][1]; 個数
$t = total($p, $n); 小計
 で、エーと・・・
 まだ他にわからないところがありますが、暇暇 
 質問したいと思います。
 今後ともよろしくお願いいたします。

お礼日時:2016/05/31 08:04

>どんな働きがあるのでしょうか?


添え字を利用して配列内のデータへアクセスできる

前も同じケースで回答したかと思いますが
$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番目の要素にアクセスしています

こればっかりは配列とはこういうものだと覚えるしかありません
    • good
    • 0
この回答へのお礼

レスご回答くださいまして誠にありがとうございます。
現在、配列を読み直しておりました。
 以前も同等の質問をしていたのを思い出しました。(悪しからず・・・)
$product = array(0=>array(0=>100,1=>5),1=>array(0=>20,1=>16),2=>array(0=>25,1=>40));
 少し知れべてみます。

お礼日時:2016/05/25 13:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!