Имейте код, который отображает массив с одинаковым eid внутри, имеет массив дней
foreach ($data['display'] as $item) { $eid = implode($data['data'][$i]['eid']); $date = date('Y-m',strtotime($item['date_d'][0])); if (!isset($groups[$eid])) { $groups[$eid] = array( 'employeeId' => $eid, 'efullname' => $item['fullname'][0], 'hrsdiff' => $item['hrsdiff'][0], 'days' => array( $date => $item['key'][0], ) ); } else { @$groups[$eid]['days'][$date] += $item['key'][0]; } $i++; }
который отображает:
[0] => Array ( [employeeId] => 21 [efullname] => MANOGURA EDGAR [hrsdiff] => 2.2331 [days] => Array ( [2014-02] => 23 [2014-03] => 26 [2014-04] => 23 ) ) [1] => Array ( [employeeId] => 1 [efullname] => IBARDOLAZA VIRGILIO [hrsdiff] => 5.0333 [days] => Array ( [2014-01] => 2 [2014-02] => 24 [2014-03] => 26 [2014-04] => 26 ) )
хотите, чтобы массив days имел один и тот же индекс, если он отсутствует, он добавит отсутствующие индексные дни, а значение должно быть 0 ex в индексе [0], массив дней должен иметь [2014-01] => 0
Предполагая, что два массива могут отсутствовать в любом из них:
$a = array('2014-02' => 'afoo', '2014-03' => 'abar', '2014-04' => 'abaz'); $b = array('2014-02' => 'bfoo', '2014-03' => 'bbar', '2014-01' => 'bbaz'); $a += array_fill_keys(array_keys(array_diff_key($b, $a)), 0); $b += array_fill_keys(array_keys(array_diff_key($a, $b)), 0); print_r($a); print_r($b);
Вывод:
Array ( [2014-02] => afoo [2014-03] => abar [2014-04] => abaz [2014-01] => 0 ) Array ( [2014-02] => bfoo [2014-03] => bbar [2014-01] => bbaz [2014-04] => 0 )