json编码数组中的条件语句


Conditional statement in an json encoded array

我展示了一个页面的"Review Your Order:"部分,其中成功回调了json_encode数组。我可能在技术上说的完全错误,但希望你能看到我在努力做什么

PHP处理页面的一部分。。。

 $results = array(
 'roomname' => $_POST['roomX'],
 'qty' => $_POST['qtyX'],

我希望结果作为…返回

房间名称:无论归还什么。(注意标签"房间名称:")

但我只想让标签显示POST是否分配了值。

我认为它应该是什么样子的例子,但它不起作用。。

 $results = array(
 'roomname' => if (!$_POST['roomX']=='' { echo 'Room Name: ' .$_POST['roomX'];},

这有道理吗?每个订单有几十个选项,我不想在一堆空值前面加上"Label:"。

编辑:添加了下面答案中的代码

// beginning of array
$results = array(
'roomname' => $_POST['roomX'],
'qty' => $_POST['qtyX'],
// more code...
// end of array.. remember not to have a comma on this last one.
);
// pasted answer between the array ending and the json_encode line.
if ($_POST['roomX'] != ''){
$results['roomname'] = "Room Name: ".$_POST['roomX'];
}
$json = json_encode($results);
echo $json;

这里有一种方法,您可以使用三元操作

$results = array(
 'roomname' => $_POST['roomX']==''? 'Room Name: '.$_POST['roomX']: '',
 );

如果值为空,这将添加一个空白字符串

另一种方法是稍后添加值;

$results = array(...);
if ($_POST['roomX'] != ''){
$results['roomname'] = $_POST['roomX']
}
$results = array();
if (isset($_POST['roomX'])) {
   $results[] = array(...);
}

如果没有post值,那么只会得到一个空数组。

您可以在将任何数据分配给roomname之前进行if语句,如

$result = array( 
    'roomname' => ($_POST['roomX'] !== '')? 'Room name: '.$_POST['roomX']:''
);

我在这里使用的是一个短if语句,其工作原理如下:(if语句)?真:假;

我希望这对你有帮助。