3v4l.org

run code in 300+ PHP versions simultaneously
<?php $sql = [ ['id'=>1,'user_id'=>1,'question_id'=>1,'answer'=>'3c','date'=>'2021.08.06',], ['id'=>2,'user_id'=>1,'question_id'=>2,'answer'=>'2c','date'=>'2021.08.06',], ['id'=>3,'user_id'=>1,'question_id'=>3,'answer'=>'1c','date'=>'2021.08.06',], ['id'=>4,'user_id'=>1,'question_id'=>4,'answer'=>'com','date'=>'2021.08.06',], ['id'=>5,'user_id'=>2,'question_id'=>1,'answer'=>'3','date'=>'2021.08.08',], ['id'=>6,'user_id'=>2,'question_id'=>2,'answer'=>'2','date'=>'2021.08.08',], ['id'=>7,'user_id'=>2,'question_id'=>3,'answer'=>'1','date'=>'2021.08.08',], ['id'=>8,'user_id'=>2,'question_id'=>4,'answer'=>'2comm','date'=>'2021.08.08',], ['id'=>9,'user_id'=>211,'question_id'=>1,'answer'=>'113','date'=>'2021.07.08',], ['id'=>10,'user_id'=>211,'question_id'=>2,'answer'=>'22','date'=>'2021.07.08',], ['id'=>11,'user_id'=>211,'question_id'=>3,'answer'=>'132','date'=>'2021.07.08',], ['id'=>12,'user_id'=>211,'question_id'=>4,'answer'=>'qeww','date'=>'2021.07.08',] ]; $quest = array_unique(array_column($sql, 'question_id')); sort($quest); // optional $data = []; foreach($sql as $row){ $user_id = $row['user_id']; if (!isset($data[$user_id])){ $data[$user_id] = ['date' => $row['date'], 'ans' => []]; } foreach($quest as $question_id){ if ($row['question_id'] == $question_id) { $data[$user_id]['ans'][$question_id] = $row['answer']; } } } foreach($data as $userID => $user_data){ echo '<tr>'.PHP_EOL; echo ' <td> User ID: '.$userID.'</td>'.PHP_EOL; foreach($user_data['ans'] as $q_id => $q_ans){ echo ' <td>'.$q_ans.'</td>'.PHP_EOL; } echo ' <td> Date: '.$user_data['date'].'</td>'.PHP_EOL; echo '</tr>'.PHP_EOL; }

preferences:
24.35 ms | 406 KiB | 5 Q