[英]accessing multidimensional array
我在有效訪問某些陣列數據時遇到了一些問題,需要一些技巧。
我正在做一個數據庫調用,返回的數據與此類似:
+------+------------+------------+-----------+
| 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和其中的值(我正在得到),但是我想按零件號在PHP中對它進行分組。
例如,甚至像打印此命令一樣簡單:
Part: (p1)
Values: 1, 2, 3, 4, 5, 6, 7.
Part: (n)
Values: 1, 2, 3, 4, 5.
請注意:我無法在mysql上執行此操作,因為我將這些數據用於其他用途,並且我不想執行多個數據庫請求。
我希望我已經說得足夠清楚了,讓我知道是否需要更多信息。
假設當前數據位於變量$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));
}
您將使用循環遍歷數據。 像這樣:
$results = [your query and fetch]
$array = array();
foreach ($results as $rs)
$array[$rs['part_num']][] = $rs['value'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.