PHP / SQL-从数据库查询创建多维数组

时间:2018-08-28 13:27:40

标签: php mysql sql arrays multidimensional-array

我有一个数据库,其中包含许多条目,其数据如下:

id  number  data
1   1       'tyfvib'
2   1       'fgdhjjd'
3   1       'gdgdhdj'
4   2       'dgfhfh'
5   2       'fghdhd'

所以我有一个唯一的ID,然后是一个带有数字的列,然后是一个具有不同字符串的列。

然后我有这样的查询:

$sql = "SELECT * FROM table";
$stmt = DB::run($sql);
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $number= $row['number'];
    $data = $row['data'];
}

我想制作一个多维关联数组,该数组首先具有唯一编号的数组,而这些唯一编号将包含与它们关联的数据的数组。

我曾尝试将$array[$number] = $data放入while循环中,但这显然只会构成一个数组,其中与数字关联的唯一数据是循环中的最后一个。

任何帮助或建议,将不胜感激。

2 个答案:

答案 0 :(得分:3)

  

我曾尝试将$ array [$ number] = $ data放入while循环中,但这显然只会构成一个数组,其中与数字关联的唯一数据是循环中的最后一个。

然后添加另外一组[]:

$array[$number][] = $data;

每次都会在数组$array[$number]中创建一个新条目。

答案 1 :(得分:0)

您需要在循环之前创建一个数组变量,您可以按以下方式在每次迭代中推送数据

$alldata=[]
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $alldata[$row['number']][] = $data
}
echo"<pre>";print_r($alldata);