代码之家  ›  专栏  ›  技术社区  ›  CoderWolf

无法正确设置php键值对集

  •  0
  • CoderWolf  · 技术社区  · 7 年前

    我在类中使用了一个键值对,但它并没有按我想要的方式返回数据。我想要GB值(&A);Lv在关键区域,价值在价值区域。然而,我的调试输出似乎表明我当前正在将值放置在键值对的键部分?

    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 回复  |  直到 7 年前
        1
  •  1
  •   Don't Panic    7 年前

    在使用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]
    }
    

    事实上, $ContribArray[$key] $ContribArray[$value] 你什么都得不到。事实上,它似乎可能会引起未定义索引通知。

    推荐文章