2015-09-04 187 views
0

有没有办法将值赋给关联数组而不用数组创建另一个维? $ champion ['Champion']] ['New'] = $ row ['New']; $ {$ row ['Champion']] ['New'] = $ row ['New'];将值赋给多维关联数组

阵列这样

enter image description here

'新' 我怎么能访问这个价值?

$champion=array(); 

        $champions_table= $conn->prepare("SELECT Champion, New, Passive, Q, Q2, W, W2, E, E2, R, R2 FROM champions Where Patch_No = ? ORDER BY ID ASC"); 
        $champions_table->bind_param('s', $Patch_No); 
        $champions_table->execute(); 
        $champions_table_result = $champions_table->get_result(); 

while($row = $champions_table_result->fetch_assoc()){ 
         //Getting General Changes 
         $champion[$row['Champion']]['New'] = $row['New']; 
} 
+0

道歉,如果我的误解,但你可以用$ existi为数组赋值ngarray ['new'] = $ whateveryouwant' – mattslone

+0

@mattslone如何检索所述值?我已经尝试过像echo $ champions [$ row ['Champion']] ['New'];没有成功 – Higeath

+0

不,我只是想知道如果'新'价值是0或1为specyfic冠军回声$冠军['东西'] ['新'],我想从这个1或0 – Higeath

回答

1

获取所有赋值。

foreach ($champion as $key => $value) { 
    echo "Champion : ".$key." Value: ".$value['New']." <br />\n"; 
} 

,如果你知道冠军的名字

echo $champion['championname']['New'] <br />\n"; 

例如

echo $champion['Blitzcrank']['New'] <br />\n"; 

如果你想有一个3维数组略微扩大到更容易地看到它是如何分配给

while($row = $champions_table_result->fetch_assoc()){ 
     $value = $row['Champion']; 
     $champion['Champion'][$value]= array('New' => $row['New']); 
} 

获得值

echo $champion['Champion']['Blitzcrank']['New'] <br />\n";  
+0

echo $冠军['冠军'] ['新']我已经尝试过,我知道冠军的名字,我得到身份不明的索引 – Higeath

+0

@Higeath请看看我的更新。 –

+0

@Higeath:你能给我一个回应吗? –

0

假设这是从数据库结果:

$row = array('Champion' => 'champ', 'New' => '1');

这应该工作:

$champion[$row['Champion']]['New'] = $row['New']; 
echo $champion[$row['Champion']]['New']; 

而且应该输出1

+0

使用'$ champion'的OP [$ row ['Champion']] ['New'] = $ row ['New'];'so'$ champion ['?']'成为'$ row ['Champion ']'!! –

+0

对..我的答案没有反映出来吗?我只是回应来自数据库的当前记录。 – mattslone

+0

这只会在循环中起作用('$ row'在循环内部有效)OP需要循环后的值,例如'echo $ champion ['Blitzcrank'] ['New'];'你的例子将像'echo $ champion ['champ'] ['New'];'这就和我的答案一样。 –