为了账号安全,请及时绑定邮箱和手机立即绑定

如何增量添加到 multidim 数组 PHP?

如何增量添加到 multidim 数组 PHP?

PHP
哈士奇WWW 2023-10-15 16:46:39
我从数据库中提取许多这样的行$rows = [    ['id' => 3, 'course_name' => 'GSG2', 'course_day' => 'Monday', 'course_starts_at' => '01:30:00'],    ['id' => 2, 'course_name' => 'Look1', 'course_day' => 'Wednesday', 'course_starts_at' => '03:10:00']]我需要从中创建一个多维数组,该数组将工作日作为键,将行数组作为值。因为即使当天没有空,我也需要钥匙在场,所以我首先这样做了$timetable = [  ['Monday' => ''],  ['Tuesday' => ''],  ['Wednesday' => ''],  ['Thursday' => ''],  ['Friday' => ''],];然后我就这样做foreach ($rows as $row) {  switch ($row['course_day']) {    case "Monday":      $timetable['Monday'] = $row;      break;    case "Tuesday":      $timetable['Tuesday'] = $row;      break;    case "Wednesday":      $timetable['Wednesday'] = $row;      break;    case "Thursday":      $timetable['Thursday'] = $row;      break;    case "Friday":      $timetable['Friday'] = $row;      break;  }}但随后生成的 multidim 数组每天只有一个课程(其最后一次迭代)。我尝试使用 += 而不是 = 但那不起作用。请问您有什么建议吗?
查看完整描述

2 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

对您的最简单的修改可能如下:


$timetable = [

    'Monday' => [],

    'Tuesday' => [],

    'Wednesday' => [],

    'Thursday' => [],

    'Friday' => []

];


foreach ($rows as $row) {

    $courseDay = $row['course_day'];

    if (isset($timetable[$courseDay])) {

        $timetable[$courseDay][] = $row;

    }

}

首先创建索引作为工作日的时间表,然后如果工作日匹配则添加事件。它还允许您通过在时间表变量中添加或删除它们来限制您支持的日期。


查看完整回答
反对 回复 2023-10-15
?
Qyouu

TA贡献1786条经验 获得超11个赞

尝试这样做


foreach ($rows as $row) {

  switch ($row['course_day']) {

    case "Monday":

      $timetable['Monday'][] = $row;

      break;

    case "Tuesday":

      $timetable['Tuesday'][] = $row;

      break;

    case "Wednesday":

      $timetable['Wednesday'][] = $row;

      break;

    case "Thursday":

      $timetable['Thursday'][] = $row;

      break;

    case "Friday":

      $timetable['Friday'][] = $row;

      break;

  }

}


查看完整回答
反对 回复 2023-10-15
  • 2 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信