DBの値をカラムごとに配列で持つ独自ORMとかいう地獄
配列しか知らない時期に作っちゃったとかなのだろうか。。。(phpの案件) c言語の授業習いたてのときに見かけるような
一般的にはこうあってほしい
というか素のmysql, mysqli, pdoはこう返してくる
なんで縦のものをわざわざ横にするようなことを。。。
code: 理想.php
code: 実際はこう.php
直そうよ
フレームワーク部分なので、全モデル(相当)のクラスに影響する
移行予定のシステムで古いほうは、最低限しか触るなと言われている
いたるところ2次元配列の嵐
code: 添字と戦う
$user->colums = array("name", "address"); //DBカラムの一覧
$user->count = 3; //行の総数
for($i = 0; $i < count($user->columns); $i++) {
for(j = 0; j < $user->count; j++) {
$user->{$user->columnsi}j }
foreach使おうといったけど、却下されてしまった。。。
code: 添字と戦う
$user->colums = array("name", "address"); //DBカラムの一覧
$user->count = 3; //行の総数
for(i = 0; i < $user->count; i++) {
foreach($user->columns as $column) {
}
}
添字をある数までは -1して、ある数以上はそのままみたいなことやってて、読み解くまでに時間がかかった
(元のコードとは変えてある。)
code: 要するにarray.insert(2, array0)したい.php for(i = 0; i < $user->count; i++) {
if(i < $point - 1)
index = i
else if(i > $point - 1)
index = i
$tmp = clone $user; //まさかのclone
if(i != $point - 1) {
$indexj = count($user->columns);
for($j = 0; $j < $indexj; $j++){
$user->{$user->colums$i}j = $tmp->{$user->colums$i}j }
}else{
$indexj = count($user->columns);
for($j = 0; $j < $indexj; $j++){
$user->{$user->colums$i}j = $tmp->{$user->colums$i}0 }
}
}
配列の指定位置に新しく要素を挿入したいということだった
code: array_spliceをつかう.php
foreach($user->columns as $column) {
array_splice($user->{$column}, $point, 0, $user->{$column}0); }
なお、著しく不合理でなければ直さないって却下された。。。
こっちに供養