按公共索引分组的数组内的输出数组


Output arrays within an array grouped by a common index

我有一个数组,如下所示。我想要的输出是按存储分组,然后将所有相关的数量和名称连接到这些数组中。我已经展示了期望的输出。

当前数组

Array
(
    [denomination] => Array
        (
            [0] => 25
            [1] => 50
            [2] => 100
            [3] => 200
        )
    [quantity] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
            [3] => 4
        )
    [store] => Array
        (
            [0] => candy store
            [1] => candy store
            [2] => book store
            [3] => candy store
        )
)
所需输出

Array
(
    [candy store] => Array
        (
            [0] => Array
                (
                    [denomination] => Array
                        (
                            [0] => 25
                            [1] => 50
                            [2] => 200
                        )
                )
            [1] => Array
                (
                    [quantity] => Array
                        (
                            [0] => 1
                            [1] => 1
                            [2] => 4
                        )
                )
        )
    [book store] => Array
        (
            [0] => Array
                (
                    [denomination] => Array
                        (
                            [0] => 100
                        )
                )
            [1] => Array
                (
                    [quantity] => Array
                        (
                            [0] => 2
                        )
                )
        )
)
$result = array();
foreach ($array['store'] as $index => $type) {
  $result[$type]['denomination'][] = $array['demoniation'][$index];
  $result[$type]['quantity'][] = $array['quantity'][$index];
}

这并不完全是你指定的"期望输出",但我没有看到一个原因,为什么要把denomination -和quantity -数组放入额外的数组中。

然而,如果这有任何原因,你可以得到类似的

$result = array();
foreach ($array['store'] as $index => $type) {
  $result[$type][0]['denomination'][] = $array['demoniation'][$index];
  $result[$type][1]['quantity'][] = $array['quantity'][$index];
}