PHP 数组检查现有索引


PHP array check for existing index

在PHP中不是很强,所以我的问题在这里:

我正在构建一个简单的数组以 json 形式返回,并用来自另一个数组的数据填充它。$eventarray可能有指数气体,也可能没有,所以我需要检查现有的气体指数,如果存在,如果不填充默认值,请获取值。

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

在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']
);
您可以使用

isset()来检查元素是否存在(并且未null(:

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

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

您可以使用三元运算符来检查其是否存在,并设置默认值。

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

...
"gas" => (isset($eventarray['gas'])) ? $eventarray['gas'] : 'default',

使用这个

array_key_exists('gas', $somearr);

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

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

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

然后循环遍历$eventarray:

foreach( $eventarray as $event => $eventval ) {
  $somearr[$event] = $eventval;
}

使用三元运算符:

"actiontaken"=>sprintf("%s", (isset($eventarray['desc']) && !empty($eventarray['desc'])) ?$eventarray['desc'] : 'Default Value'),