как сгруппировать значения внутри массива в php? - PullRequest
0 голосов
/ 14 декабря 2011

у меня такая ситуация $result:

[result] => Array
    (
        [Jeffrey] => Array
            (
                [date] => Array
                    (
                        [0] => 1294439732
                        [1] => 1294074456
                        [2] => 1295041663
                    )
                [amt] => Array
                    (
                        [0] => 6.90
                        [1] => 19.50
                        [2] => 19.50
                    )
            )
        [John] => Array
            (
                [date] => Array
                    (
                        [0] => 1294439732
                        [1] => 1294074456
                        [2] => 1295041663
                    )
                [amt] => Array
                    (
                        [0] => 6.90
                        [1] => 19.50
                        [2] => 19.50
                    )
            )
)

что я пытаюсь сделать, это:

[result] => Array
    (
        [Jeffrey] => Array
            (
                [date] => Array
                    (
                        [0] => 1294439732
                           [amt] => Array(
                             [0] => 6.90
                         )
                        [1] => 1294074456
                           [amt] => Array(
                             [0] => 19.50
                         )
                        [2] => 1295041663
                           [amt] => Array(
                             [0] => 19.50
                         )
                    )
            )
        [John] => Array
            (
                [date] => Array
                    (
                        [0] => 1294439732
                           [amt] => Array(
                             [0] => 6.90
                         )
                        [1] => 1294074456
                           [amt] => Array(
                             [0] => 19.50
                         )
                        [2] => 1295041663
                           [amt] => Array(
                             [0] => 19.50
                         )
                    )
            )
)

Возможно, у меня неправильное форматирование массива, но идея в том, что у каждого date есть corespondent amt, и я хочу получить эту сумму внутри даты

не уверен, как перейти к реорганизации этого массива, чтобы он выглядел так. $ Результат [ 'дата'] я думаю, мне нужно сделать цикл foreach и собрать $result['date'] and $result['amt'].

У кого-нибудь есть идеи?

спасибо

1 Ответ

0 голосов
/ 14 декабря 2011

Я думаю, это то, что вы ищете

$newArray = array();
foreach ($results as $user => $data) {
    $newArray[$user] = array();
    $newArray[$user]['date'] = array();
    for ($x = 0; $x < sizeof($results[$user]['date']); $x++) {
        $newArray[$user]['date'][$x] = array();
        array_push($newArray[$user]['date'][$x], $results[$user]['date'][$x]);
        array_push($newArray[$user]['date'][$x], array('amt' => array($results[$user]['amt'][$x])));
    }
}

var_dump($newArray);

Не знаю, зачем вам нужны все эти массивы, особенно массив внутри amt, так как есть только 1 элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...