在PHP中从数据库查询创建多维数组

4

我有一个数据库,其中包含一些数据条目,格式如下:

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

我有一个唯一标识符,然后有一个包含数字的列和一个包含不同字符串的列。

然后我有一个类似这样的查询:

$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个回答

5
我尝试将$array[$number] = $data放在while循环中,但这显然只会产生一个数组,其中与数字关联的唯一数据是循环中的最后一个数据。 然后添加另一个[]:
$array[$number][] = $data;

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

非常感谢,这正是我正在寻找的。 - Paddy Hallihan

-1

在循环之前,您需要创建一个数组变量,在每次迭代中将数据推入其中。

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

方括号表示一个三维数组。 - Benjamin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接