2012-01-16 4 views
-1

У меня есть массив объектовPHP массив объектов преобразования

([date]=>2012-01-09, [count]=>5), 
([date]=>2012-01-11, [count]=>7), 
([date]=>2012-01-12, [count]=>5) 

Каков наилучший способ преобразовать массив в объект массива или массива

([date]=>2012-01-08, [count]=>0), 
([date]=>2012-01-09, [count]=>5), 
([date]=>2012-01-10, [count]=>0), 
([date]=>2012-01-11, [count]=>7), 
([date]=>2012-01-12, [count]=>5), 
([date]=>2012-01-13, [count]=>0), 
([date]=>2012-01-14, [count]=>0) 

предполагают, учитывая StartDate 2012-01-08 и ENDDATE 2012-01-14

ответ

1
  1. генерировать даты StartDate в ENDDATE
  2. создайте пустой ассоциативный массив для хранения данных по дате.
  3. пересекает все даты, сгенерированные в # 1 один на один
  4. если счетчик для текущей даты существует в исходном массиве, хранить, что в массиве, созданном в # 2, сосчитать еще магазин как 0, с ключом массива является (string) $currentDate
  5. массив шага № 2 теперь будет иметь требуемые данные.

Преобразовать это в PHP код :)

0

Я не буду писать код для вас, но я приведу вам алгоритм

$compArray = new array(); 

loop from startdate to enddate as date 
{ 
    if (in_array(date, yourarray)) 
     copy the entry from yourarray to compArray 
    else 
     enter date into compArray with a count of 0 
} 
Смежные вопросы