ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

データの保持の方法

プログラムを作成していると、データを保持して加工する場面があります。
単純な1次元の配列にデータを入れて加工できる場合もあれば、2次元配列や連想配列にした方が、データの加工がしやすい場合もあります。

現在作成しているプログラムでは、日付と特有の番号をキー項目として利用しないと、データの加工が難しい処理があります。
そのため、日付と特有の番号を2次元配列の添字にして、データを連想配列としています。

日付をキー項目として処理したい場合、日付と特有の番号をキー項目として処理したい場合には便利ですが、一見すると何のためにこのような構造になっているのだろうという印象になります。
並べ替えが必要になった場合、PHPには、ksortarray_multisortといった配列を並べ替える便利な関数がありますが、このような実装では利用できないでしょう。
並べ替えを独自に実装するか、配列を並べ替える関数に合わせた形式でデータを用意して、並べ替えた後にデータを入れなおすという手間をかけなければならなくなります。

作成している現在は、そのような構造にした意味を覚えていますが、後々になって思い出せるのだろうかと不安にもなります。
他の人からすると、なぜこのような構造にしなければいけないのかと疑問に思われて、悩まれるのも当然ではないかと思います。

ソースコード
unsplash-logoLee Campbell

ソースコード上へのコメントや、資料を作成して、他の人でも理解するための手段を用意するのもいいのですが、やはりソースコードをわかりやすくするのが一番だと考えます。
プログラムは動作するようになりましたが、ソースコードが複雑になっているので、動作が同じようにしつつ、もっとわかりやすいソースコードにできないかと苦闘する日々が続きそうです。