0

PHP 不是很强大,所以这是我的问题:

我正在构建一个简单的数组以作为 json 返回,并用另一个数组中的数据填充它。$eventarray 可能有索引gas,也可能没有,所以我需要检查现有的gas索引,如果存在,如果没有填充默认值,则获取该值。

我将如何以最佳方式做到这一点?

再次在 PHP 中不那么强大。

这是数组:

 $somearr = array(
       "actiontaken"=>sprintf("%s", $eventarray['desc']),
        "actionname" =>sprintf("%s", $eventarray['name']),
        "type" =>sprintf("%s", $eventarray['type']),
        "subtype" =>sprintf("%s", $eventarray['name']),
        "min" =>sprintf("%s", $eventarray['min']),
        "gas" =>sprintf("%s", $eventarray['gas']),
        "playerId"=>$value['p'],
        "name" =>$value2['name'],
        "race" =>$value2['race']
);
4

5 回答 5

4

您可以使用isset()来检查元素是否存在(并且不存在null):

isset($eventarray['gas']) ? $eventarray['gas'] : 'defaultvalue'

注意:null如果您不希望使用默认值的可能值,则不能使用isset但必须array_key_exists($eventarray, 'gas')改用。

于 2012-05-20T23:51:52.023 回答
1

您可以使用三元运算符来检查它的存在,并设置一个默认值。

它的工作方式是:(条件)?[如果为真]:[如果为假]

...
"gas" => (isset($eventarray['gas'])) ? $eventarray['gas'] : 'default',
于 2012-05-20T23:52:32.537 回答
0

用这个

array_key_exists('gas', $somearr);

http://www.php.net/manual/en/function.array-key-exists.php

于 2012-05-20T23:52:11.567 回答
0

首先使用默认值初始化您的 $somearr 数组:

$somearr = array(
  'actiontaken' => 'default action',
  'actionname' => 'default action name',
  etc.. );

然后循环$eventarray:

foreach( $eventarray as $event => $eventval ) {
  $somearr[$event] = $eventval;
}
于 2012-05-20T23:53:30.960 回答
0

使用三元运算符

"actiontaken"=>sprintf("%s", (isset($eventarray['desc']) && !empty($eventarray['desc'])) ?$eventarray['desc'] : 'Default Value'),
于 2012-05-20T23:57:36.170 回答