微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在声明数组php中添加if函数

如何解决如何在声明数组php中添加if函数

你好,我在这里遇到问题,我想像这样在PHP的数组声明中创建一个if语句

foreach($data as $d){
$temparray = [
                if($d['STAT'] =='STUND'){
                    'stat_acc' => $stat_stund_acc,'stat_blok' => $stat_stund_blok
                 }else{
                    'stat_acc' => $stat_acc,'stat_blok' => $stat_blok
                 }
                 'other_data1' => $other_data1
                 'other_data2' => $other_data2

            ];
}

但是在我的vscode中有一个警告错误

解决方法

为什么不喜欢这个?

$temparray = [];
if($d['STAT'] =='STUND'){
    $temparray = [
        'stat_acc' => $stat_stund_acc,'stat_blok' => $stat_stund_blok,'other_data1' => $other_data1,'other_data2' => $other_data2
    ];
}
else{
    $temparray = [
        'stat_acc' => $stat_acc,'stat_blok' => $stat_blok,'other_data2' => $other_data2
    ];
}
,

您可以按照@rafalrozek所说的用一般的if来保护整个事情,或者也可以只保护自己想要的东西:

foreach ($data as $d) {
    $temparray = [
        'other_data1' => $other_data1,'other_data2' => $other_data2,];

    if ($d['STAT'] == 'STUND') {
        $temparray['stat_acc'] = $stat_stund_acc;
        $temparray['stat_blok'] = $stat_stund_blok;
    } else {
        $temparray['stat_acc'] = $stat_acc;
        $temparray['stat_blok'] = $stat_blok;
    }
}

此外,只要条件检查不太昂贵,就可以使用三元:

foreach ($data as $d) {
    $temparray = [
        'stat_acc' => $d['STAT'] == 'STUND' ? $stat_stund_acc : $stat_acc,'stat_blok' => $d['STAT'] == 'STUND' ? $stat_stund_blok : $stat_blok,];
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。