Выходные массивы в массиве, сгруппированном по общему индексу - PullRequest
0 голосов
/ 22 июля 2011

У меня есть массив, показанный ниже.Мой желаемый результат - группировать по хранилищам, а затем объединять (я думаю?) Все связанные количества и номиналы в эти массивы.Я показал желаемый результат:

ТЕКУЩИЙ Массив

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
                        )
                )
        )

)

1 Ответ

0 голосов
/ 22 июля 2011
$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];
}
...