无法正确设置php键值对集
我在一个类中使用了一个键值对,但它并没有以我想要的方式返回数据。我希望GB和Lv中的值位于关键区域,值位于值区域。但是,我的调试输出似乎表明我当前正在将该值放置在键值对的键部分无法正确设置php键值对集,php,object,keyvaluepair,Php,Object,Keyvaluepair,我在一个类中使用了一个键值对,但它并没有以我想要的方式返回数据。我希望GB和Lv中的值位于关键区域,值位于值区域。但是,我的调试输出似乎表明我当前正在将该值放置在键值对的键部分 职业玩家{ var$PlayerName; var$TotalContributedPoints; 函数GetTotalContributedPoints() { $mysqli=新的mysqli(“本地主机”、“用户”、“密码”、“foe_gb_contribs_测试”); 如果($mysqli->connect\u
职业玩家{
var$PlayerName;
var$TotalContributedPoints;
函数GetTotalContributedPoints()
{
$mysqli=新的mysqli(“本地主机”、“用户”、“密码”、“foe_gb_contribs_测试”);
如果($mysqli->connect\u errno){
echo“未能连接到MySQL:(“$mysqli->connect\u errno.”“$mysqli->connect\u error;
}
$debug=true;
如果($debug==true){echo$this->PlayerName.
;}
$QuerySQL=“从'GB_Contribs'中选择*其中Player_Nick=”“$this->PlayerName。”“按日期排序ASC”;
如果($debug==true){echo'查询为'$QuerySQL'.
';}
$ContribArray=数组(“键”=>“值”);
$result=$mysqli->query($QuerySQL);
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
$ContribArray[$row['GB&Lv']]=$row['Value'];
}
foreach($key=>$value){
echo“Player_nick:”.$this->PlayerName.
”;
呼应“伟大的建筑水平:”.$contribaray[$key]。“
”;
回显“贡献点”。$contribaray[$value]。“
”;
}
返回$contribaray;
}否则{
如果($debug==true){echo“0结果”;}
返回;
}
}
}//球员课程结束
当您使用foreach迭代数组时,您已经拥有了键和值。您不需要再次引用数组
foreach($ContribArray as $key => $value) {
echo "Player_nick: ". $this->PlayerName ."<br>";
echo "Great Building Level: ".$key."<br>"; // not $ContribArray[$key]
echo "Contribution Points".$value."<br>"; // not $ContribArray[$value]
}
foreach($key=>$value){
echo“Player_nick:”.$this->PlayerName.
”;
echo“伟大的建筑级别:”.$key.
“;//不是$ContribArray[$key]
回显“贡献点”。$value.
“;//不是$contribaray[$value]
}
事实上,
$contribaray[$key]
会为您获取值,我假设$contribaray[$value]
不会为您获取任何信息。事实上,它看起来可能会导致一个未定义的索引通知。总体计划是对象是自包含的,并通过该函数传递密钥值。完成后,代码的该部分将位于if($debug==true){}部分。但现在的问题是,回音“伟大的建筑水平:”.$key.“”;行返回我希望在回显“贡献点”中显示的值。$value。“
”;线路。我想我是说,
$ContribArray
可能很好,但foreach输出只是让它看起来不是这样。@CoderWolf您的代码没有伟大的建筑级别:“.key.”
代码>行,它有一个“伟大的建筑级别:”.$ContribArray[$key]。“
”代码>行,这是完全不同的。如果你说你尝试了Don't Panic的解决方案,但也没有成功,那么忽略这个。但是,考虑到您的原始代码,不要惊慌的观点是正确的。谢谢,这与我在foreach中的想法略有不同,并解释了我在从foreach中取出$key=>$值时遇到的一个问题。我没有意识到外观本身正在将它分配给它自己的变量。hense我没有意识到这些变量是供我使用的。@PatrickQ谢谢,我试图通过在代码中添加注释来让这一点更加明显——不过可能太微妙了。
foreach($ContribArray as $key => $value) {
echo "Player_nick: ". $this->PlayerName ."<br>";
echo "Great Building Level: ".$key."<br>"; // not $ContribArray[$key]
echo "Contribution Points".$value."<br>"; // not $ContribArray[$value]
}