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

qyzbxkaa  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(372)

我有一个数据库,里面有很多条目,数据如下:

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循环中,但这显然只会生成一个数组,其中与数字关联的唯一数据是循环中的最后一个数据。

hgqdbh6s

hgqdbh6s1#

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

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

klr1opcd2#

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

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

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

相关问题