PHP将if命令放入数组

时间:2018-10-01 12:35:19

标签: php

这有点奇怪。我正在用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,
      ),
    ),
  ),
);

如果查询类型是实时的,我试图让它向数组添加一行。这是我尝试过的方法,但是我不确定是否可以执行此操作,否则,我不确定应该如何处理。我在下面看到的错误提示可能无法实现:

  

解析错误:语法错误,意外的'if'(T_IF),期望为')'

1 个答案:

答案 0 :(得分:5)

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

$array = ['your', 'array', 'with', 'fields']
if ($queryType === 'realtime') {
    $array[] = ['source' => 'realtime'];
}

显然,将值更改为您的期望值,但这应该可以完成工作。如果您希望在根目录级别添加它,也可以像这样追加:

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