PHPのメモ帳です。
606 views
ちょっと小細工プログラムで、以下のようなキーと値が同じ連想配列を作りたかった。
[""=>"", "322000200440"=>"322000200440"]
そして、ペアはループでどんどん連結させていくつもりだった。
連結にはarray_mergeを使った。
簡単なサンプルは以下のとおり。
$record = [""=>""];
$result = "322000200440";
$record = array_merge($record, [$result=>$result]);
print_r($record);
期待していたのは以下の出力だったんだけど、
[""=>"", "322000200440"=>"322000200440"]
実際に出力されたのは以下。
Array
(
[] =>
[0] => 322000200440
)
インデックスが3220002004400じゃなくて0になっとる…
array_mergeって連想配列には使えないのかもしれない。
ただ、こういうコードを書くと、それらしく動いている。
$result = "かきくけこ";
$record = ["aiueo"=>"あいうえお"];
$record = array_merge($record, [$result=>$result]);
print_r($record);
出力はこんな感じ。
Array
(
[aiueo] => あいうえお
[かきくけこ] => かきくけこ
)
どういうことやねん…。
で、回避策ですが、array_mergeじゃなくて、+演算子を使ったら直りました。
以下、直ったサンプル。
$record = [""=>""];
$result = "322000200440";
$record += [$result=>$result];
print_r($record);
以上。
Page 2 of 9.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/