配列に追加された値を配列に追加するとします。
$a = array();
$b = array();
$b[] = 42;
$a[] = $b;
echo $a[0][0];
>> 42
出力は(予想どおり)「42」です。ここで、コードの順序を少し変更するとします。配列は参照によって渡される必要があるため、この変更はまったく違いはありません。
$a = array();
$b = array();
$a[] = $b;
$b[] = 42;
echo $a[0][0];
>> Notice: Undefined offset: 0 in /opt/iceberg/web/upload/auth.php on line 111
何を与える?私のコードをこの単純化された例に要約している間、明らかなはずの間違いを犯したという感覚を揺るがすことはできませんでした. どんな助けでも大歓迎です!
解決
参照代入を強制できます。
$a = array();
$b = array();
$a[] =& $b;
$b[] = 42;
echo $a[0][0];
>> 42
補遺:より複雑なケースで使用する=&
と、不思議な方法で動作し、(私にとって) 非常に奇妙な動作を引き起こします。PHP の初心者には、by 値の割り当てに固執するのが最善だと思います。