我想从数组中获取数据值。我试过这段代码但不行。它说
Notice: Undefined index: s_date
这是我的代码:
if($data1['level'] == 'sales')
{
$dataa[$data1['id_transaksi']]['s_date'] = $data1['inputtime'];
}
else if($data1['level'] == 'sales_admin')
{
$dataa[$data1['id_transaksi']]['sa_date'] = $data1['inputtime'];
}
else if($data1['level'] == 'teknik')
{
$dataa[$data1['id_transaksi']]['st_date'] = $data1['inputtime'];
}
foreach($dataa as $datab)
{
$sd = $dataa['s_date'];
$sad = $dataa['sa_date'];
$std = $dataa['st_date'];
}
非常感谢任何帮助。先谢谢
答案 0 :(得分:0)
如果您的条件无法满足您的条件,则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'] : '';
}
答案 1 :(得分:0)
$sd = $dataa['s_date'];
未定义...以此为例:
$Array = array(
array(
"s_data" => "Example",
"st_date" => "another example"
),
array(
"s_data" => "Example",
"st_date" => "another example"
)
);
然后运行该数组:
foreach ($Array AS $Values){
$sd = $Values['s_data'];
}
您正在迭代数组,因为它自己的变量因此未定义$Array['s_data'];
,因为您想要从多维数组的第一层拉出一个不存在的键...所以迭代为$Values
在foreach内部