0

我想从数组中获取数据值。我已经尝试过此代码,但无法正常工作。它说

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'];
}

任何帮助将不胜感激。之前谢谢

4

2 回答 2

0

如果您的 if 条件不满足您的条件,则s_date,sa_datest_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'] : '';
}
于 2013-05-02T02:23:33.520 回答
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中进行迭代

于 2013-05-02T02:26:08.113 回答