Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在声明数组php中添加if函数_Php_Arrays_Arraylist_Multidimensional Array_Foreach - Fatal编程技术网

如何在声明数组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{

您好,这里有个问题,我想在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_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,如果这扩展了我的代码,我需要的是十进制代码,我忘记了编程的基础知识,非常感谢,先生,对于我的情况最好的解决方案是在你的第二种方式中,我需要的是十进制代码,我忘记了编程的基础知识,非常感谢,先生,对我来说最好的解决办法是你的第二种方式