「出てくるキー(offset)は決まっている」みたいなリスト的なものにデータを突っ込んでいく時、
例えば「1週間のデータ」「キーに曜日番号を使うよ(データは上書きして良いよ)」とか、あると思うんですけど
「歯抜けはいいとしても若い順に並べてくれ」みたいな要件がありませんか?(ある??)
<?php // 空配列に突っ込んでいく /** @var array{'dow': int<0,6>, 'val': int} $logs */ $array = []; foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) { $array[$dow] = $val; } ksort($array);
雑にやりゃこうだよなって思ったんですけど、自分は割とfill済みの空配列に突っ込んでいくの好きだなーって気もしており
<?php // 初期化頑張り /** @var array{'dow': int<0,6>, 'val': int} $logs */ $array = array_fill_keys(range(0, 6), null); foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) { $array[$dow] = $val; }
そういやfixed array使えるのか、って思ったやつ
<?php // 知っているクラスを使う /** @var array{'dow': int<0,6>, 'val': int} $logs */ $array = new \SplFixedArray(7); foreach ($logs as ['dow' => $dow, 'val' => $val] = $log) { $array[$dow] = $val; } // $array = $array->toArray();
Objectになってるじゃん!!!Arrayでくれよ!!!!!って諍いが起こりにくくなりますね