为什么我的功能没有添加适当的数据

时间:2016-02-12 10:02:30

标签: php arrays loops

我正在尝试创建一个按时间分组的数据数组(field_time_value)。

这是SQL查询的原始结果,我操作此数据($ query):

enter image description here

结果我想要(所需) - 所有已关闭的键都有一个空值:

enter image description here

这就是我现在所拥有的(查看[15.15] [数据] [1] [数据]上的值 - 它是空的,根据$ query中的数据,它应该被填充如上所述,所有关闭的键都有一个空值:

enter image description here

这是我使用的代码:

  $days = array(
     1 => t('Monday'),
     2 => t('Tuesday'),
     3 => t('Wednesday'),
     4 => t('Thursday'),
     5 => t('Friday'),
     6 => t('Saturday'),
     7 => t('Sunday'),
  );

  foreach ($query as $key => $value) {
    foreach($days as $day_key => $day_name) {
      if ($value->field_day_value == $day_key) {
        $rows[$value->field_time_value]['data'][$day_key] = array('data' => 'Day: '.$value->field_day_value.' Hour: '.$value->field_time_value);
      } else {
        $rows[$value->field_time_value]['data'][$day_key] = array('data' => 'empty');
      }
    }
  }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

不要再烦了,我明白了。应该还有一个条件可以防止覆盖我的数组中的数据:

foreach ($query as $key => $value) {
    foreach($days as $day_key => $day_name) {
      if ($value->field_day_value == $day_key) {
        $rows[$value->field_time_value]['data'][$day_key] = array('data' => 'Day: '.$value->field_day_value.' Hour: '.$value->field_time_value);
      } else {
        if (!isset($rows[$value->field_time_value]['data'][$day_key])) {
          $rows[$value->field_time_value]['data'][$day_key] = array('data' => 'empty');
        }
      }
    }
  }