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_datesa_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 ループ内でキーが設定されているかどうかも確認する必要があります。そこに 2 次元配列も作成しました。したがって、 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 に答える