【问题标题】:Create multidimensional array from database query in PHP从 PHP 中的数据库查询创建多维数组
【发布时间】:2019-02-03 03:51:24
【问题描述】:

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

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

【问题讨论】:

    标签: php mysql sql arrays multidimensional-array


    【解决方案1】:

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

    然后添加一组额外的[]:

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

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

    【讨论】:

    • 谢谢一百万,这正是我想要的
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多