dongse5408 2017-10-03 19:55
浏览 15
已采纳

无法正确设置php键值对

I have a key value pair that I am using inside of a class, but it is not returning the data the way I want it. I want the value in GB&Lv to be in the key area and the value to be in the value area. However my debug output seems to indicate that I am currently placing the value in the key section of the key value pair?

class Player{
    var $PlayerName ;
    var $TotalContributedPoints;
    function GetTotalContributedPoints()
    {
            $mysqli = new mysqli("localhost", "user", "password", "foe_gb_contribs_test");
        if ($mysqli->connect_errno) {
           echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
        }

        $debug = true;

        if ($debug == true) {echo $this->PlayerName.'<br>';}
        $QuerySQL = "SELECT * FROM `GB_Contribs` WHERE Player_Nick = '".$this->PlayerName."' order by DATE ASC";
        if ($debug == true) {echo 'Query is '.$QuerySQL.'<br>';}
        $ContribArray = array("Key" => "Value");
        $result = $mysqli->query($QuerySQL);
        if ($result->num_rows > 0) {
            while($row=$result->fetch_assoc()) {
                $ContribArray[$row['GB&Lv']] = $row['Value'];
            }
            foreach($ContribArray as $key => $value) {
                echo "Player_nick: ". $this->PlayerName ."<br>";
                echo "Great Building Level: ".$ContribArray[$key]."<br>";
                echo "Contribution Points".$ContribArray[$value]."<br>";
            }
            return $ContribArray;

        }  else {
            if ($debug == true) {echo "0 results";}
            return;
        }


    }

}// END of Player Class
  • 写回答

1条回答 默认 最新

  • drwn65609 2017-10-03 20:01
    关注

    As you're iterating the array with foreach, you already have the key and value. You don't need to refer to the array again.

    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]
    }
    

    As it is, $ContribArray[$key] gets you the value, and I would assume $ContribArray[$value] doesn't get you anything. In fact, it seems like it would probably cause an undefined index notice.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行