-1

$_SESSION未定義の要素数を持つ PHP配列があります。NULLすべての値を 0 に初期化することはできますか、または値をチェックするたびに値が 0 であるかどうかをチェックしてから 0 に設定する必要がありますか?

編集:私の質問があいまいで申し訳ありません。未定義のレベルがあり、各レベルのすべてのスコアをその配列に保存したいと考えています。現在、私のレベルの量は固定されているので、現在書いているだけです:

$_SESSION['totals'] = array(0,0,0,0,0);

そして、データを操作して追加するときは、その要素に特定の量を単純にインクリメント/追加します。

ここで、値が NULL かどうかを確認する必要なく、特定の要素に値を直接インクリメント/追加するのと同じくらい簡単にしたいと思います...

編集 2:コードを次のように編集しました。

$_SESSION['totals'] = array();    
if(array_key_exists($row['level']-1,$_SESSION['totals'])){
    $_SESSION['totals'][$row['level']-1]++;
}else{
    $_SESSION['totals'][$row['level']-1] = 1;
}

そしてそれはうまくいくようです。ありがとう!

4

7 に答える 7

1

関数を使用array_fill_keysして、定義されたキーの指定された値で配列を埋めることができます。

$keys   = array('foo', 'bar', 'baz');
$output = array_fill_keys($keys, 0);
于 2013-07-15T18:34:09.920 に答える
0

array_key_exists()インデックスが設定されているかどうかを確認するために使用しました。そうでない場合は、そのフィールドに特定の値を表示0または追加して保存します。そうでない場合は、そのインデックスの値を表示するか、そのフィールドに特定の値を追加します。

それを提起してくれたSvenの功績。

于 2013-07-29T23:59:21.593 に答える
0

$_SESSIONあなたがそれに入れたものだけが含まれています。初めて何かを追加する0のではなく、必ず追加してください。null

後でこれを行う必要がある場合は、設計が悪い可能性があると思います。とにかく、$_SESSION通常の配列のようなものなので、PHP の配列関数を使用して配列をトラバースし、各値を確認または変更することができます。

于 2013-07-15T18:33:51.043 に答える