2

私は最初にこの配列シナリオを持っています:

$_SESSION['player_1_pawn'][] = 'Warrior';

今、次のような 3 次元の値を追加したい場合:

$_SESSION['player_1_pawn'][0]['x'] = 1;

私はこの出力を

>$_SESSION['player_1_pawn'][0] : '1arrior'

私の質問は、その値をそのままの状態に保つ方法Warrior1arrior?

4

2 に答える 2

6

値がすでに文字列である場合、['x']その文字列の最初の文字にアクセスします (はい、聞かないでください ;))。

全体を配列に置き換えたい場合は、次のようにします。

$_SESSION['player_1_pawn'][0] = array('x' => 1);

$_SESSION['player_1_pawn'][0]文字列「Warrior」配列の両方を同時に持つことはできないため、どちらにするかを考えてください。おそらく:

$_SESSION['player_1_pawn'][0] = array('type' => 'Warrior', 'x' => 1);
于 2012-07-16T10:23:58.507 に答える
0

あなたの問題は、$_SESSION['player_1_pawn'][0]「戦士」に等しいスカラー値であることです。$_SESSION['player_1_pawn'][0]['x']which evalueates$_SESSION['player_1_pawn'][0][0]や "W" のように、スカラーを配列として扱う場合は、文字列の最初の文字を変更するだけです。

「戦士」を維持したい場合は、これを試してください:

$_SESSION['player_1_pawn']=array('Warrior', 'x'=>1);

到着予定時刻:

あなたの要件を考えると、構造は次のとおりです。

$_SESSION['player_1_pawn'] = array(
  0 => array('Warrior', 'x'=>1),
  1 => array('Wizard', 'x'=>7), //...
);

つまり、次のように追加します。

$_SESSION['player_1_pawn'][]=array('Warrior', 'x'=>1);
于 2012-07-16T10:27:31.417 に答える