我正在尝试使用ChartJS在数据库数组之外制作一个堆积图。我必须根据日期创建一个数组。同一日期可以在不同的行中。
我尝试将索引设为日期,但这并没有太大作用。它在数组中创建了8个对象,而应该有3个。该数组可以在ChartJS中使用。
当前数组
[0]=>
array(1) {
["23-5-2019"]=>
array(4) {
["time_1"]=>
string(1) "1"
["created_for"]=>
string(3) "152"
["time_2"]=>
string(1) "0"
["time_3"]=>
string(1) "0"
}
}
[1]=>
array(1) {
["23-5-2019"]=>
array(4) {
["time_1"]=>
string(1) "0"
["created_for"]=>
string(2) "152"
["time_2"]=>
string(1) "2"
["time_3"]=>
string(1) "0"
}
}
foreach循环
foreach($records_ar as $record_hours) {
$date = $record_hours['entry_date'];
$var_end = new DateTime($record_hours['end_time']);
$var_start = new DateTime($record_hours['start_time']);
//calculate difference between start_time and end_time
$worked_hours = $var_start->diff($var_end)->format('%h');
//create date format based on location
$temp_date_element = TS_Format_Dates::getSimpleDate($date);
$data_ar[$record_hours['entry_date']] = $worked_hours;
$data_ar[$temp_date_element]['time_'.$record_hours['category_id']] = $worked_hours;
$data_ar[$temp_date_element]['created_for'] = $record_hours['created_for'];
if($record_hours['entry_date'] === $temp_date_element) {
if ($record_hours['category_id'] === '1') {
$data_ar[$temp_date_element]['time_1'] = $worked_hours;
} else {
$data_ar[$temp_date_element]['time_1'] = '0';
}
if ($record_hours['category_id'] === '2') {
$data_ar[$temp_date_element]['time_2'] = $worked_hours;
} else {
$data_ar[$temp_date_element]['time_2'] = '0';
}
if ($record_hours['category_id'] === '3') {
$data_ar[$temp_date_element]['time_3'] = $worked_hours;
} else {
$data_ar[$temp_date_element]['time_3'] = '0';
}
} else {
if ($record_hours['category_id'] !== '1') {
$data_ar[$temp_date_element]['time_1'] = '0';
}
if ($record_hours['category_id'] !== '2') {
$data_ar[$temp_date_element]['time_2'] = '0';
}
if ($record_hours['category_id'] !== '3') {
$data_ar[$temp_date_element]['time_3'] = '0';
}
}
self::$worked_hours_data[] = $data_ar;
}
temp_date_element当前创建8个日期。 4个具有相同的日期。这4个应该合并为一个具有各自时间值的日期。
当前,一个日期的category_id 1可以有一个work_time,同一日期的category_id 2可以有一个work_time。
我想将它们合并在一起。
当前的数组循环似乎不是我想要的那样。我似乎无法创建要制作的数组。
我期望做的数组是
[0]=>
array(1) {
["23-5-2019"]=>
array(4) {
["time_1"]=>
string(1) "1"
["created_for"]=>
string(3) "152"
["time_2"]=>
string(1) "2"
["time_3"]=>
string(1) "0"
}
}
此致
B3nvo