来自mysql的Php多维数组

时间:2017-09-02 05:53:46

标签: php mysql arrays resultset

我有一个看起来像这样的mysql表:

Variant

我正在尝试构建一个最终看起来像这样的多维数组:

id | id_transaction | id_item    | 
1  |  it0001        | T0001      | 
2  |  it0001        | T0002      |
2  |  it0001        | T0003      |
3  |  it0002        | T0001      |
4  |  it0002        | T0003      |
5  |  it0003        | T0003      |
6  |  it0003        | T0004      |

我正在使用选择查询:

Array
(
    array('T0001','T0002','T0003'),

    array('T0001','T0003'),

    array('T0003','T0004'),

);

有谁知道怎么做?

2 个答案:

答案 0 :(得分:4)

1.不要使用df = pd.DataFrame([['a', 'b'], ['c', 'd']]) 现已弃用+已删除。使用'[{"unique":"False","win":"False"}]' df_win = pd.read_json(path_or_buf='[{"unique":"False","win":"False"}]', orient='values') #df_win = pd.read_json(path_or_buf='some_url' + index, orient='values') combined = pd.concat([df, df_win], axis=1, join_axes=[df.index]) mysql_*作为此

2.查询执行后你没有做任何事情。

mysqli_*版本代码为: -

PDO

答案 1 :(得分:3)

以这种方式使用GROUP_CONCAT

SELECT id_transaction, GROUP_CONCAT(id_item)  
FROM transaction_item
GROUP BY id_transaction

这将产生以下结果:

+----------------+-------------------+
| id_transaction | id_item           |
+----------------+-------------------+
| it001          | T0001,T0002,T0003 |
+----------------+-------------------+
| it002          | T0001,T0003       |
+----------------+-------------------+
| it003          | T0003,T0004       |
+----------------+-------------------+

然后您可以使用php' explode()以下列方式创建数组:

$result = mysqli_query($conn, $sql_query);

while($row = mysqli_fetch_assoc($result)) {
    $final[] = explode(',', $row["id_item"]);
}

print_r($final);

以这种方式执行此操作将为您提供更快结果,因为PHP只会迭代3次以构建您的数组。