簡體   English   中英

PHP-無法為三維數組增加價值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM