php - 如何从 SQL 获取数组值
问题描述
我有一个 SQL 表,名称为“table1”,表结构如下。
ID|customer_name|orders_id|
---------------------------
1 | muko | 1 |
2 | luma | 2 |
3 | muko | 2 |
4 | ceki | 8 |
5 | ceki | 10 |
6 | muko | 7 |
7 | luma | 11 |
---------------------------
ETC...
如何在 PHP 中将它们输出为这样的数组:
$customers = array ("muko"=>[1,2,7], "luma"=>[2,11], "ceki"=>[8,10] );
解决方案
例如:
<?php
/*
DROP TABLE IF EXISTS table_a;
CREATE TABLE table_a
(id SERIAL PRIMARY KEY
,customer_name VARCHAR(12)
,order_id INT NOT NULL
);
INSERT INTO table_a VALUES
(1,'muko',1),
(2,'luma',2),
(3,'muko',2),
(4,'ceki',8),
(5,'ceki',10),
(6,'muko',7),
(7,'luma',11);
*/
require('path/to/connection/stateme.nts');
$query = "
SELECT a.id
, a.customer_name
, a.order_id
FROM table_a a
ORDER
BY a.customer_name
, a.order_id;
";
$result = mysqli_query($db,$query);
$old_array = array();
while($row = mysqli_fetch_assoc($result)){
$old_array[] = $row;
}
$new_array = array();
foreach ($old_array as $row) {
$new_array['customer_name'][$row['customer_name']][] = $row['order_id'];
}
$new_array = array_values($new_array); // reindex
print_r($new_array);
?>
输出:
Array
(
[0] => Array
(
[ceki] => Array
(
[0] => 8
[1] => 10
)
[luma] => Array
(
[0] => 2
[1] => 11
)
[muko] => Array
(
[0] => 1
[1] => 2
[2] => 7
)
)
)
推荐阅读
- android - 在 Android webView 中使用最新的浏览器功能
- javascript - indexOf 函数中的选项之间的选择
- reactjs - 浏览器缓存未在 Cloudfront 上加载新版本的 ReactJS 单页应用程序
- git - 带有 SSH 主机别名的 git clone
- c - MCP2515 和 STM32L053:SPI 问题
- django - 图像未在 Django 中上传
- protractor - 自动化测试的 UI 覆盖率
- c# - 将 .NET Core 项目的测试覆盖率从 Azure DevOps 发布到 SonarCloud
- c# - 如何从一个对象启动两个并行线程?
- django - Dockerized Nginx,域无法正常工作