質問: 0; $i < count($ary); $i++) { $result=array(); $result[]=$ary[$i]*10; $result[]=$ary[$i]*100; $final[]=$result; } 【質問】ここでご質問ですが、これらの動作が非常に不思議です。 最終的に得たい配列ノ$finalについて、上書きされずに1回目と2回目のループをそれぞれ多次元配列として保持したい場合、B)で実現できると考えておりました。これはphpのどのような仕様によるものがご存知であればご教示願います。 2同じ配列では上書きされてしまうので、それぞれユニークな添字をつければ、上書きされないのではと考え、$key=array("A","B");をつけて添え字つきでループさせても、後半の配列に前半の配列の要素が残ってしまいます。 【質問】このように添え字を使ってそれぞれユニークな連想多次元配列にすれば上書きされないと思っていたのですが、なぜ実現できないのかをご教示願えますでしょうか? ``` ```
回答: 添え字なしは、配列への追加処理となります。 http://php.net/manual/ja/language.types.array.php 最後の例(パターン2)では、finalには追加ではありませんが、その上のステップにあるresultに追加されていくので、最終的にfinalにすべての情報が含まれます。 これは、どのステップでどのような内容になるか出力・デバッグして確かめればわかる挙動かと思います。