如何在声明数组php中添加if函数
您好,这里有个问题,我想在php中的数组声明中创建一个if语句,如下所示如何在声明数组php中添加if函数,php,arrays,arraylist,multidimensional-array,foreach,Php,Arrays,Arraylist,Multidimensional Array,Foreach,您好,这里有个问题,我想在php中的数组声明中创建一个if语句,如下所示 foreach($data as $d){ $temparray = [ if($d['STAT'] =='STUND'){ 'stat_acc' => $stat_stund_acc, 'stat_blok' => $stat_stund_blok }else{
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_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_data1' => $other_data1,
'other_data2' => $other_data2
];
}
你可以像@rafalrozek所说的那样,用一个通用的
来保护整个事情,或者你可以只保护你想要的东西:
foreach($d数据){
$temparray=[
'other_data1'=>$other_data1,
'other_data2'=>$other_data2,
];
如果($d['STAT']=='STUND'){
$temparray['stat\u acc']=$stat\u stund\u acc;
$temparray['stat\u blok']=$stat\u stund\u blok;
}否则{
$temparray['stat_acc']=$stat_acc;
$temparray['stat\u blok']=$stat\u blok;
}
}
此外,只要条件检查不太昂贵,就可以使用三元:
foreach($d数据){
$temparray=[
'stat\u acc'=>$d['stat']=='STUND'?$stat\u STUND\u acc:$stat\u acc,
'stat_blok'=>$d['stat']='STUND'?$stat_STUND_blok:$stat_blok,
'other_data1'=>$other_data1,
'other_data2'=>$other_data2,
];
}
你可以像@rafalrozek用一般的说的那样,如果
保护整个事情,或者你可以只保护你想要的东西:
foreach($d数据){
$temparray=[
'other_data1'=>$other_data1,
'other_data2'=>$other_data2,
];
如果($d['STAT']=='STUND'){
$temparray['stat\u acc']=$stat\u stund\u acc;
$temparray['stat\u blok']=$stat\u stund\u blok;
}否则{
$temparray['stat_acc']=$stat_acc;
$temparray['stat\u blok']=$stat\u blok;
}
}
此外,只要条件检查不太昂贵,就可以使用三元:
foreach($d数据){
$temparray=[
'stat\u acc'=>$d['stat']=='STUND'?$stat\u STUND\u acc:$stat\u acc,
'stat_blok'=>$d['stat']='STUND'?$stat_STUND_blok:$stat_blok,
'other_data1'=>$other_data1,
'other_data2'=>$other_data2,
];
}
这是不正确的语法。这是不正确的语法。您好,谢谢rafarozek,在我的例子中,有3条数据需要if语句,如果声明为if语句,则至少需要6条if语句并扩展我的代码您好,谢谢rafarozek,在我的例子中,有3条数据需要if语句,如果它被声明为1,那么它至少需要6,如果这扩展了我的代码,我需要的是十进制代码,我忘记了编程的基础知识,非常感谢,先生,对于我的情况最好的解决方案是在你的第二种方式中,我需要的是十进制代码,我忘记了编程的基础知识,非常感谢,先生,对我来说最好的解决办法是你的第二种方式