【问题标题】:use multi dimensional array outside loop scope in php在php中使用循环范围外的多维数组
【发布时间】:2011-10-22 00:19:18
【问题描述】:

我也想在循环外使用 arrData 数组,如何在循环范围外声明它,好像现在没有正确填充一样

  $SQL = "SELECT * FROM DailyData WHERE User='$_SESSION[userID]'"; 
    $result = mysql_query($SQL); 
    $i=0; 
    // trying this
    $arrData= array();
    $arrData []= array();
    while($row = mysql_fetch_array($result)) 
    { 
    echo $row['Score'] . " " . $row['Date']; 
    $arrData[i][1]=$row['Date']; 
    $arrData[i][2]=$row['Score']; 
    $i++; 
    echo "<br />"; 
    }

【问题讨论】:

  • 你能再具体一点吗,你的变量 $arrData 似乎位于 while 循环的外部范围内。所以这段代码应该是金色的
  • 但是如何在循环范围之外正确声明它,因为它没有被正确填充
  • 只需使用 $arrData = array();你不需要 $arrdata [] = array();当你进入循环并指定 $arrData[i][x] 时,它会自动为你在 i 上创建一个数组

标签: php arrays loops multidimensional-array scope


【解决方案1】:

$arrDatawhile 循环范围之外可用。

您好像忘记了美元符号:

$arrData[i][1]=$row['Date']; 
$arrData[i][2]=$row['Score']; 

应该是

$arrData[$i][1]=$row['Date']; 
$arrData[$i][2]=$row['Score']; 

在原文中,PHP 认为你的意思是 $arrData['i'],这意味着你一直在写 $arrData['i'][1]$arrData['i'][2] - 但是,你正在递增 $i,所以你想利用那个变量 - @ 987654329@ 和$arrData[$i][2]

【讨论】:

    【解决方案2】:

    我想这可能是你要找的东西:

      $SQL = "SELECT * FROM DailyData WHERE User='$_SESSION[userID]'"; 
      $result = mysql_query($SQL); 
      $arrData= array();
    
      while($row = mysql_fetch_array($result)) 
      { 
        $arrData[]=$row;
        //you can also do some output here if you want
      }
    
      //arrData is now available outside the while-loop
      foreach($arrData as $row) {
        echo $row['Score'] . ' ' . $row['Date'] . '<br />'; 
      }
    

    【讨论】:

    • 你这里做的和 $arrData = mysql_fetch_array($result); 完全一样顺便说一句:p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2013-06-25
    • 2019-07-17
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多