「みんな教えて! 選手権!!」開催のお知らせ

PHPの勉強してます。
配列のところですが、
実行結果は、9になりますが、
そのロジックを教えてください。
テキストの説明が足りなくて、よく分かりません。
宜しくお願いします。

「PHPの勉強してます。 配列のところです」の質問画像

A 回答 (7件)

ドキュメントはご覧になりましたか?


https://www.php.net/manual/ja/function.array.php

array() は、連想配列ではない場合、指定した引数を、添え字0から付与して値が用意されます。

つまり、語弊があることを承知の上で、理解しやすい形としては、
$a = array($a1, $a2, $a3)

$a = array(array(1, 2, 3), array(4, 5, 6), array(7, 8, 9))
と同義です。

この時、添え字0から付与されるので、
$a[0] は array(1, 2, 3)
$a[1] は array(4, 5, 6)
$a[2] は array(7, 8, 9)・・・$a[2] で求められる値
が格納されています。

さらに
$a3 = array(7, 8, 9) は
$a3[0] は 7
$a3[1] は 8
$a3[2] は 9・・・$a[2][2] で求められる値
であることが分かります。

つまりこのコードの構造では、$a は二次元配列であることが分かります。
(ANo.4 参照)
よって、$a[2][2] は 9 です。

print の前に、
var_dump($a);
をコードしてみると分かりやすいかもしれません。
    • good
    • 1
この回答へのお礼

ありがとう

お礼日時:2024/12/18 03:17

0始まりだから、[2][2]は、3列目の3行目。

=9
    • good
    • 0

基本的に配列の要素名は0から始まるので、printで出力しているのは、$a3の3番目の値になります。



$a2の2番目の値である5を出したいのであれば、

print $a[1][1];

と記述しないといけません。
    • good
    • 1

こういうデータになるからです



↓縦1桁目
→横2桁目
+--+--+--+--+
| * | 0 | 1 | 2 |
+--+--+--+--+
| 0 | 1 | 2 | 3 |
+--+--+--+--+
| 1 | 4 | 5 | 6 |
+--+--+--+--+
| 2 | 7 | 8 | 9 |
+--+--+--+--+
    • good
    • 1

配列の最初のエントリーの位置は0です。


2番目は1。3番目は3。・・・。
ということで3行3列の配列の最初、1行目・1列目の位置は0, 0です。
    • good
    • 1

こんにちは



配列をさらに配列化しているので、2次元配列のようになります。

>$a = array($a1, $a2, $a3);
の2番目の要素(=$a3 =[7, 8, 9])から、更に2番目の要素(=9)を指定しているということになります。

※ 配列の添え字は0始まりですので、上記では、最初の要素が「0番目」となるような言い方をしています。
一般的な序数の概念に合わせるなら、上記は「3番目の要素から3番目の要素を指定している」となります。
    • good
    • 2

配列は0から始まると覚えておけばOKかと。

    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A