我在访问某些数组数据时遇到了一些问题,需要一些提示。
我正在进行数据库调用,返回类似于此的数据:
+------+------------+------------+-----------+
| id | key | part_num | value |
+------+------------+------------+-----------+
| 1 | application| p1 | 1|
| 2 | application| p1 | 2|
| 3 | capsule | p1 | 3|
| 3 | capsule | p1 | 4|
| 4 | instrument | p1 | 5|
| 5 | instrument | p1 | 6|
| 5 | instrument | p1 | 7|
| 1 | application| n8 | 1|
| 2 | application| n8 | 2|
| 3 | capsule | n8 | 3|
| 3 | capsule | n8 | 4|
| 4 | instrument | n8 | 5|
+------+------------+------------+-----------+
注意part_num
我真的只需要part_num和value(我得到的),但我想用PHP编号将它分组。
例如,甚至像打印一样简单:
Part: (p1)
Values: 1, 2, 3, 4, 5, 6, 7.
Part: (n)
Values: 1, 2, 3, 4, 5.
请注意:我不能用mysql做这个,因为我将这些数据用于其他事情,我不想做多个数据库请求。
我希望我已经说清楚了,如果需要更多信息,请告诉我。
答案 0 :(得分:1)
假设您当前的数据位于变量$data
中,您可以遍历行并创建一个新数组$partnums
。
$partnums = array();
foreach($data as $row) {
if (!isset($partnums[$row['part_num']]))
$partnums[$row['part_num']] = array();
$partnums[$row['part_num']][] = $row['value'];
}
现在$partnums
是一个数组,其中包含用于键的part_num ...每个引用与该part_num相关联的值数组。
打印出您建议的值:
foreach($partnums as $partnum => $values) {
printf('Part: (%s)'.PHP_EOL, $partnum);
printf('Values: %s.'.PHP_EOL, implode(', ', $values));
}
答案 1 :(得分:0)
您将使用循环遍历数据。像这样:
$results = [your query and fetch]
$array = array();
foreach ($results as $rs)
$array[$rs['part_num']][] = $rs['value'];