2011-12-15 59 views
0

我想一個PHP的結果集轉換爲數組(使用的foreach),我倒不這樣做是正確..轉換一個PHP結果集到一個數組

我有一個結果:

$result 

我通過它循環如下:(可怕的錯誤)

while($row = mysql_fetch_array($result)) { 

    foreach (mysql_fetch_array($result) as $k => $v) { 
     echo "Fred's $k is ". $v['uid']. "\n"; 
    } 

} 

我想這個數組是在以下格式:

Array 
(
    [0] => Array //row1 
     (
      [column1] => value 
      [column2] => value 
      [column3] => value 
     . 
     . 

     ) 

    [1] => Array //row2 
     (
      [column1] => value 
      [column2] => value 
      [column3] => value 
     . 
     . 
     ) 

    [2] => Array //row3 
     (
      [column1] => value 
      [column2] => value 
      [column3] => value 
     . 
     . 
     ) 

) 

我是新手,請幫忙。

+1

你也應該停止使用mysql_功能。他們很老。最好使用mysqli或PDO。 – Evert 2011-12-15 11:34:19

回答

0

我不能很好地理解,但希望 這將幫助你:

$array = array(); 
while($row = mysql_fetch_array($result)) { 
$array[] = $row['uid']; 
} 
6
$results = array(); 
    while($row = mysql_fetch_assoc($result)) 
    { 
     $results[] = $row; 
    } 

    //$results has all that you need 
    print_r($results); 
+1

使用mysql_fetch_assoc獲取列名(唯一)作爲數組鍵。 – Shoogle 2011-12-15 04:46:50

0

試試這個,

while($row = mysql_fetch_assoc($result)) { 
    $ar[]=$row; 
} 
1

你不需要在foreach要做到這一點,你可以堅持你的while循環:

$result_set = array(); 

while($row = mysql_fetch_array($result)) { 
    $result_set[] = $row; 
} 

然後你可以使用它像一個正常的數組:

$result_set[0]['column_name']; 
0

嘗試mysql_fetch_assoc代替:

$results_array = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $results_array[] = $row; 
}