PHP数组检查现有索引

时间:2012-05-20 23:48:24

标签: php arrays json indexing

在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']
);

5 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

它的工作方式是:(条件)? [if true]:[if false]

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

答案 2 :(得分:0)

使用此

array_key_exists('gas', $somearr);

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

答案 3 :(得分:0)

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

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

然后遍历$ eventarray:

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

答案 4 :(得分:0)

使用ternary operator

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