今日のぺちぱー

PHPのメモ帳です。

443 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。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626