DB から次の形式でデータを取得しています。
Array
(
[id] => 1
[exerciseid] => 127
[date] => 2013-06-12 00:00:00
[time] => 40271
[weight] =>
[distance] => 1000
[reps] =>
[intensity] =>
)
Array
(
[id] => 2
[exerciseid] => 127
[date] => 2013-06-12 00:00:00
[time] => 120813
[weight] =>
[distance] => 1000
[reps] =>
[intensity] =>
)
ここで、これらの配列をマージして、executeid が一致する場合に多次元配列を作成したいと考えています。私はこれをやった:
Array
(
[127] => Array
(
[1] => Array
(
[time] => 40271
[weight] =>
[distance] => 1000
[reps] =>
[intensity] =>
)
[2] => Array
(
[time] => 120813
[weight] =>
[distance] => 1000
[reps] =>
[intensity] =>
)
)
)
私の質問は、私が持っているものよりもこれを書くためのより良い方法はありますか?
while($e = $db->fetch()) {
foreach ($e as $key => $value) {
if($key == 'id')
$id = $value;
else if($key == 'exerciseid')
$exerciseid = $value;
else if($key == 'time')
$time = $value;
else if($key == 'weight')
$weight = $value;
else if($key == 'distance')
$distance = $value;
else if($key == 'reps')
$reps = $value;
else if($key == 'intensity')
$intensity = $value;
}
$a[$exerciseid][$id]['time'] = $time;
$a[$exerciseid][$id]['weight'] = $weight;
$a[$exerciseid][$id]['distance'] = $distance;
$a[$exerciseid][$id]['reps'] = $reps;
$a[$exerciseid][$id]['intensity'] = $intensity;
}