0

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

三項演算子を使用してその存在を確認し、デフォルト値を設定できます。

それが機能する方法は次のとおりです:(条件)?[trueの場合]:[falseの場合]

...
"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 に答える