json编码数组中的条件语句

时间:2012-07-19 22:27:07

标签: php callback json conditional-statements

我正在显示“查看您的订单:”页面的一部分,其中包含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;

3 个答案:

答案 0 :(得分:3)

这是一种方法,您可以使用Ternary operation

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

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

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

$results = array(...);

if ($_POST['roomX'] != ''){
$results['roomname'] = $_POST['roomX']
}

答案 1 :(得分:0)

你可以在将任何数据分配到房间名之前制作一个if语句,如此

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

我在这里使用的是if语句的短端并且工作如下:( if语句)? true:false;

我希望这会对你有所帮助。

答案 2 :(得分:0)

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

如果没有帖子值,你最终会得到一个空数组。