1

そこで、各エントリを手動で追加して、配列を作成しました。

$Sections[] = "A.1.4.1";//900 0 900 0 900 900 888 800 800 913 900 900 900
$Sections[] = "A.1.4.2.1";// 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 994 976 954 900 846 779 516 430 344 328 239 150
$Sections[] = "A.1.4.2.2";//900 900 900 900 900 900 900 900 900 900 850 800 750 700 650 600 550 500 376 356 336 227
$Sections[] = "A.1.4.2.3";//1000 1000 1000 1000 900 900 1000 1000 1000 1000 893 803 763 492 516 491 336 336 240 24
$Sections[] = "A.1.4.3";//1000 1000 879 588 560 366 192 867 807 665
$Sections[] = "A.1.4.4";//1000 1000 1000 1000 994 864 620 456 1000 1000 1000
$Sections[] = "A.1.5.1";//900 0 900 800 464
$Sections[] = "A.1.5.2";//a 1000 1000 846 240
$Sections[] = "A.1.5.2";//b 900 900 700 356 
$Sections[] = "A.1.5.3";//1000 879 192
$Sections[] = "A.1.5.4";//1012 922 456

//EU_A
$Sections[] = "A.2.5.1";//a 1048 1048 1048 1048 1004 800 576 378
$Sections[] = "A.2.5.1";//b 1048 1048 1048 1048 1004 820 592 384
$Sections[] = "A.2.5.2";//a 1048 1048  964  828  672 504 340 
$Sections[] = "A.2.5.2";//b 1048 1048  972  836  696 536 376
$Sections[] = "A.2.5.3";//a 1048 1048 1048 1048 1004 800 576 378
$Sections[] = "A.2.5.3";//b  944  944  944  944  944 820 592 384
$Sections[] = "A.2.5.3";//c 1048 1048 1048 1048 1004 820 592 384
$Sections[] = "A.2.5.4";//a 1048 1048 1048  910  776 560 308
$Sections[] = "A.2.5.4";//b  944  944  944  928  804 588 348
$Sections[] = "A.2.5.4";//c 1048 1048 1048  928  804 588 348
$Sections[] = "A.2.7.1";//   560  504  424  304  240 200
$Sections[] = "A.2.7.2";//   520  448  416  360  312 280

//EU_B
$Sections[] = "B.2.4.1";
$Sections[] = "B.2.4.1";
$Sections[] = "B.2.4.2";
$Sections[] = "B.2.4.2";
$Sections[] = "B.3.4.1";
$Sections[] = "B.3.4.1";
$Sections[] = "B.3.4.2";
$Sections[] = "B.3.4.2";

//TR-114
$Sections[] = "A.2.1";
$Sections[] = "A.2.2";

(コメントは無視してかまいません。これは文字通り私のコードからのカットアンドペーストでした)

私が抱えている問題は、

return $Sections;

次に、任意のインデックスを参照しようとすると、初期化されていないというエラーが発生します。

しかし、私がそうするなら

$return[] = $Sections;

return $return;

インデックスを簡単に参照できます。

アレイのドキュメントをよく読みましたが、なぜそうなるのかわかりません。私はそれが機能することを知っています、私はただ理由を知りたいです。

$Sections配列が$return配列に渡されると、インデックスが何らかの形で「更新」または「更新」されると想定することしかできません。

編集:これは関数内にあり、内部で作成された配列を返すことを忘れました。誰もがそれをかなり早く理解していたと思います。returnステートメントとすべてで

4

2 に答える 2

3

としてインデックスにアクセスしようとしている場合$Sections["B.2.4.1"]、それはあなたがそれらを定義した方法ではないので、それは機能しません。構文を使用して配列に追加することにより、[]数値インデックスを作成しています。

配列は実際には次のようになり、それぞれ[]が数値インデックスで配列の最後に追加されます。

$Sections[0] = "A.1.4.1";
$Sections[1] = "A.1.4.2.1";
 // etc
于 2011-07-25T18:38:08.993 に答える
1

コードでインデックスを指定しているわけではありません。この[]表記は、PHPが配列の最後に要素を挿入し、それに新しい数値インデックスを割り当てることを意味します。

于 2011-07-25T18:38:26.887 に答える