<?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