2016-02-12 3 views
0

Я пытаюсь создать массив данных, которые будут сгруппированы по времени (field_time_value).Почему моя функция не добавляет правильных данных

Это необработанное результат SQL запроса, и я работать на этих данных ($ запроса):

enter image description here

Это результат Я хотел бы иметь (по желанию) - все закрытые ключи имеет пустое значение:

enter image description here

Это то, что я прямо сейчас (посмотрите значение на [15,15] [данных] [1] [данных] - я т пусто и по данным в $ запросе он должен быть заполнен, как описано выше), все закрытые ключи имеет пустое значение:

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'); 
     } 
    } 
    } 

Что я делаю неправильно?

ответ

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'); 
     } 
     } 
    } 
    } 
Смежные вопросы