概要
業務で連想配列内の一部の値のみ、階層を深くする必要のある実装を行う必要がありました。今までは、パターン1
のやり方で実装しておりましたが、リーダブルコード
を読んでから、質が高く綺麗で分かり易いコードを書くにはどうしたら良いんだ考えており、パターン1
の書き方は絶対に使いたくありませんでした。
なかなか、色々な記事を調べてもヒットしなくて途方に明け暮れておりましたが、急に閃いて実装ができました。
もし、同じ様な悩みをお持ちの方がいらっしゃるかもしれないと思い、記事に残しました。
// パターン1(以前までの書き方)
$test['sample']['level1']['level2'] = 'test1';
$test['sample']['level1-1'] = 'test2';
$test['sample']['level1-1-1'] = 'test3';
- 連想配列内に
key
とvalue
を記述配列を用意するだけで、1つだけ階層の深い連想配列を分かり易い書き方で表現できます。
// パターン2(新しい書き方)
$test['sample'] = [
'level1' => ['level2' => 'test1'],
'level1-1' => 'test2',
'level1-1-1' => 'test3',
];
まとめ
- 基本的な事ではあるかもしれないですが、ご参考になれば幸甚です。