2014-10-10 89 views
1

我想從MySQLi選擇結果轉換爲多維數組,但我沒有得到所需的結果。這是從SELECT語句返回的數據:MySqli查詢多維數組

+----+------------+ 
| id | value  | 
+----+------------+ 
| 2 | Red  | 
| 2 | Blue  | 
| 1 | Green  | 
| 1 | Yellow  | 
| 1 | Orange  | 
| 3 | Teal  | 
+----+------------+ 

可以有多個具有相同ID的值。我取聲明看起來是這樣的:

while ($stmt->fetch()) { 
    $colors[] = array($value); 
} 

結果看起來是這樣的:

Array 
(
    [0] => Array 
    (
     [0] => Red 
    ) 
    [1] => Array 
    (
     [0] => Blue 
    ) 
    [2] => Array 
    (
     [0] => Green 
    ) 
    [3] => Array 
    (
     [0] => Yellow 
    ) 
    [4] => Array 
    (
     [0] => Orange 
    ) 
    [5] => Array 
    (
     [0] => Teal 
    ) 
) 

但是,要我真正想要的是該數組看起來像這樣:

Array 
(
    [0] => Array 
    (
     [0] => Red 
     [1] => Blue 
    ) 
    [1] => Array 
    (
     [0] => Green 
     [1] => Yellow 
     [2] => Orange 
    ) 
    [2] => Array 
    (
     [0] => Teal 
    ) 
) 

任何幫助將不勝感激!

+0

請提供完整的選擇查詢。並修復你的while循環。 – sectus 2014-10-10 04:38:27

回答

2

或者,您可以使用id在循環內對它們進行分組。例如:

$stmt->bind_result($id, $value); 
while ($stmt->fetch()) { 
    $colors[$id][] = $value; 
} 

// $colors = array_values($colors); // optional, if you want to reindex the keys