我有這個陣列方案在第一次:PHP - 故障增值第三維數組
$_SESSION['player_1_pawn'][] = 'Warrior';
現在,當我想添加像這樣的第三維的值:
$_SESSION['player_1_pawn'][0]['x'] = 1;
我得到從
>$_SESSION['player_1_pawn'][0] : '1arrior'
我的問題這個輸出是,如何使該值作爲保持不變而不是1arrior
?
我有這個陣列方案在第一次:PHP - 故障增值第三維數組
$_SESSION['player_1_pawn'][] = 'Warrior';
現在,當我想添加像這樣的第三維的值:
$_SESSION['player_1_pawn'][0]['x'] = 1;
我得到從
>$_SESSION['player_1_pawn'][0] : '1arrior'
我的問題這個輸出是,如何使該值作爲保持不變而不是1arrior
?
如果值已經是一個字符串,['x']
訪問該字符串的第一個字符(是的,不要問;))。
如果你想用一個數組來代替整個事情,這樣做:
$_SESSION['player_1_pawn'][0] = array('x' => 1);
你不能$_SESSION['player_1_pawn'][0]
被兩個字符串「勇士」 和同時數組,因此找出哪些你想要它。大概是:
$_SESSION['player_1_pawn'][0] = array('type' => 'Warrior', 'x' => 1);
您的問題是$_SESSION['player_1_pawn'][0]
是一個標值等於「戰士」。當你把一個標爲數組,像你$_SESSION['player_1_pawn'][0]['x']
這evalueates $_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);
你這該死的是faaaaaaaa AST :),但是[0]沒有他的情況下訪問的第一個字符,這是「X」 – Moak 2012-07-16 10:25:42
@deceze:感謝您的時間和答案,它工作得很好。 – macford 2012-07-16 10:29:39
@Moak真,打字錯誤。謝謝。 – deceze 2012-07-16 10:43:58