私は最初にこの配列シナリオを持っています:
$_SESSION['player_1_pawn'][] = 'Warrior';
今、次のような 3 次元の値を追加したい場合:
$_SESSION['player_1_pawn'][0]['x'] = 1;
私はこの出力を
>$_SESSION['player_1_pawn'][0] : '1arrior'
私の質問は、その値をそのままの状態に保つ方法Warrior
は1arrior
?
私は最初にこの配列シナリオを持っています:
$_SESSION['player_1_pawn'][] = 'Warrior';
今、次のような 3 次元の値を追加したい場合:
$_SESSION['player_1_pawn'][0]['x'] = 1;
私はこの出力を
>$_SESSION['player_1_pawn'][0] : '1arrior'
私の質問は、その値をそのままの状態に保つ方法Warrior
は1arrior
?
値がすでに文字列である場合、['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);
あなたの問題は、$_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);