我首先有一个这个数组场景:
$_SESSION['player_1_pawn'][] = 'Warrior';
现在,当我想添加这样的三维值时:
$_SESSION['player_1_pawn'][0]['x'] = 1;
我得到这个输出
>$_SESSION['player_1_pawn'][0] : '1arrior'
我的问题是,如何使该值保持不变,Warrior
而不是1arrior
?
我首先有一个这个数组场景:
$_SESSION['player_1_pawn'][] = 'Warrior';
现在,当我想添加这样的三维值时:
$_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);