PHP将if命令放入数组中

PHP将if命令放入数组中,php,Php,这有点奇怪。我正在用PHP构建一个数组,然后将其编码为JSON,然后再将其输出 $arr = array ( 'reportDescription' => array ( if ($queryType == "realtime") { 'source' => 'realtime', } 'reportSuiteID' => 'rbsglobretailprod', 'dateGranularity' =>

这有点奇怪。我正在用PHP构建一个数组,然后将其编码为JSON,然后再将其输出

$arr = array (
  'reportDescription' => 
  array (
    if ($queryType == "realtime") 
    {
        'source' => 'realtime',
    }
    'reportSuiteID' => 'rbsglobretailprod',
    'dateGranularity' => $queryGran,
    'dateFrom' => $queryFrom,
    'dateTo' => $queryTo,
    'elements' => 
    array (
      0 => 
      array (
        'id' => $queryElement,
      ),
    ),
    'metrics' => 
    array (
      0 => 
      array (
        'id' => $queryMetric,
      ),
    ),
  ),
);
如果查询类型是realtime,我试图让它在数组中添加一行。这是我尝试过的,但我不确定是否有可能做到这一点,如果没有,我也不确定应该如何处理。我在下面得到的错误表明这可能是不可能的:

分析错误:语法错误,意外的'if'(T_if),应为''


您应该将其作为两个单独的调用来执行:

$array = ['your', 'array', 'with', 'fields']
if ($queryType === 'realtime') {
    $array[] = ['source' => 'realtime'];
}
很明显,用你的期望值来改变这些值,但这应该可以做到。如果需要在根级别追加,也可以这样追加:

if ($queryType === 'realtime') {
    $array['source'] = 'realtime';
}

您应该将其作为两个单独的调用来执行:

$array = ['your', 'array', 'with', 'fields']
if ($queryType === 'realtime') {
    $array[] = ['source' => 'realtime'];
}
很明显,用你的期望值来改变这些值,但这应该可以做到。如果需要在根级别追加,也可以这样追加:

if ($queryType === 'realtime') {
    $array['source'] = 'realtime';
}

删除
if
语句。声明数组后,添加类似以下内容:
if($queryType==“realtime”){$arr['source']='realtime';}
可能将其用作删除
if
语句。声明数组后,添加类似以下内容:
if($queryType==“realtime”){$arr['source']='realtime';}
可能将其用作