[英]PHP - Trouble adding value to third dimensional array
首先我有一个这个数组场景:
$_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]
是等于“ Warrior”的标量值。 当您将标量作为数组对待时,就像您使用$_SESSION['player_1_pawn'][0]['x']
来评估$_SESSION['player_1_pawn'][0][0]
或“ W”一样,更改字符串中的第一个字符。
如果您想保留“战士”,请尝试以下操作:
$_SESSION['player_1_pawn']=array('Warrior', 'x'=>1);
ETA:
根据您的要求,结构如下:
$_SESSION['player_1_pawn'] = array(
0 => array('Warrior', 'x'=>1),
1 => array('Wizard', 'x'=>7), //...
);
这意味着您可以这样添加:
$_SESSION['player_1_pawn'][]=array('Warrior', 'x'=>1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.