簡體   English   中英

訪問多維數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM