如果您的 if 条件不满足您的条件,则s_date,sa_date或st_date永远不会设置。
// If this is true, sa_date and st_date never get set
if($data1['level'] == 'sales') {
$dataa[$data1['id_transaksi']]['s_date'] = $data1['inputtime'];
}
// If this is true, s_date and st_date never get set
else if($data1['level'] == 'sales_admin') {
$dataa[$data1['id_transaksi']]['sa_date'] = $data1['inputtime'];
}
// If this is true, s_date and sa_date never get set
else if($data1['level'] == 'teknik') {
$dataa[$data1['id_transaksi']]['st_date'] = $data1['inputtime'];
}
我有一种感觉,这是您可能想要做的:
$transaksiId = $data1['id_transaksi'];
$array = array(
's_date' => 'sales',
'sa_date' => 'sales_admin',
'st_date' => 'teknik',
);
foreach ($array as $key => $value) {
$dataa[$transaksiId][$key] = $data1['level'] == $value ? $data1['inputtime'] : null;
}
您还应该使用 isset() 检查是否在 foreach 循环中设置了键,如下所示。您还在那里构建了一个二维数组。因此,将 foreach 循环的内部更改为引用$datab
foreach($dataa as $datab) {
$sd = isset($datab['s_date']) ? $datab['s_date'] : '';
$sad = isset($datab['sa_date']) ? $datab['sa_date'] : '';
$std = isset($datab['st_date']) ? $datab['st_date'] : '';
}