отдельный столбец по идентификатору с помощью foreach - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть таблица с оценками, и я разделю столбец по идентификатору моей таблицы:

enter image description here

, и я надеюсь, что выходная таблица будет

enter image description here

Я не знаю логики, если я использую foreach в CodeIgniter, спасибо и попробовал это

foreach ($data as $row) {
        $records["list"][] = array(
            $row['ID_STUDENT'],
            $row['ID_TYPE'],
            $row['SCORE'],
        );
    }

1 Ответ

0 голосов
/ 10 апреля 2019

Это создаст вам массив, который вы ищете, хотя я бы посоветовал вам написать запрос для извлечения ваших данных в формате, который вы ищете.

$studentsScores = [
    ['idType'=>1, 'idStudent'=>1, 'score'=>'80'],
    ['idType'=>1, 'idStudent'=>2, 'score'=>'60'],
    ['idType'=>2, 'idStudent'=>3, 'score'=>'70'],
    ['idType'=>1, 'idStudent'=>4, 'score'=>'80'],
    ['idType'=>3, 'idStudent'=>1, 'score'=>'90'],
    ['idType'=>4, 'idStudent'=>2, 'score'=>'100'],
];

// Columns with default values 
$columns = array_fill_keys(array_unique(array_column($studentsScores, 'idType')), 0);
$res = [];
foreach($studentsScores as $record){
  if(!isset($res[$record['idStudent']])) $res[$record['idStudent']] = $columns;
  $res[$record['idStudent']][$record['idType']] = $record['score'];
}
print_r($res);

Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...