如何解决如何在声明数组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
];
}
解决方法
为什么不喜欢这个?
$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 举报,一经查实,本站将立刻删除。