Если вы хотите сделать это очень просто, вы можете использовать карту и сопоставить имя студента с массивом из 7 булевых, причем каждый булев, представляющий «настоящий» или «отсутствующий» в этот день недели.
Один из способов сделать это, используя данные вашего примера, - использовать дефис и использовать array_count_values в сочетании с array_values для сброса ключей.
Позже вы можете индексировать этот массив, чтобы получить количество циклов. Чтобы получить правильный индекс для $array_sku_new
, $array_Title
и $array_Description
, вы можете использовать счетчик из цикла for и отдельный счетчик, чтобы получить правильный индекс для $array_sku_new
.
Например:
$totals = array_values(array_count_values(array_map(function ($x) {
return explode('-', $x)[0];
}, $array_sku_new)));
$counter = 0;
for ($j = 0; $j < count($totals); $j++) {
for ($i = 0; $i < $totals[$j]; $i++) {
$prod = array(
'SKU' => $array_sku_new [$counter],
'TITLE' => $array_Title [$j],
'DESCRIPTION' => $array_Description [$j],
);
$prods[] = $prod;
$counter ++;
}
}