использовать многомерный массив вне области видимости цикла в php - PullRequest
1 голос
/ 08 августа 2011

Я также хочу использовать массив 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 />"; 
    }

Ответы [ 2 ]

2 голосов
/ 08 августа 2011

$arrData доступно вне области действия while.

Похоже, вы забыли знак доллара:

$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, поэтому вы хотите использовать эту переменную - $arrData[$i][1] и $arrData[$i][2].

1 голос
/ 08 августа 2011

Я думаю, это может быть то, что вы ищете:

  $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 />'; 
  }
...