Я боюсь, что просто невозможно, что я пытаюсь сделать, но надеюсь, вы можете помочь мне найти хороший способ решить эту проблему.Группируйте по многомерному массиву
У меня есть следующий PHP-массив:
Array (
[0] => Array ([article] => 10.499-1 [operation] => KN_KABEL [date] => 31-05-2013 [hours] => 0 [quantity] => 1)
[1] => Array ([article] => 10.499-1 [operation] => LAS_LABEL [date] => 31-05-2013 [hours] => 0 [quantity] => 1)
[2] => Array ([article] => 10.499-1 [operation] => ASS_HARNES [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[3] => Array ([article] => 10.499-1 [operation] => CONTROLE [date] => 07-06-2013 [hours] => 0 [quantity] => 1)
[4] => Array ([article] => 24.030 [operation] => LAS_LABEL [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[5] => Array ([article] => 24.030 [operation] => ZAGEN-RAIL [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[6] => Array ([article] => 24.030 [operation] => KN_KABEL [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[7] => Array ([article] => 24.030 [operation] => ASS_RAIL [date] => 05-06-2013 [hours] => 0 [quantity] => 1)
[8] => Array ([article] => 791 070-6/GS/P [operation] => GS_UNIT [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[9] => Array ([article] => 791 070-6/GS/P [operation] => PR_UNIT [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[10] => Array ([article] => 791 070-6/GS/P [operation] => LAS_LABEL [date] => 04-06-2013 [hours] => 0 [quantity] => 1)
[11] => Array ([article] => ESS-0834E/LE-CD200 [operation] => MAGAZIJN [date] => 10-06-2013 [hours] => 0 [quantity] => 1)
[12] => Array ([article] => ESS-0834E/LE-CD200 [operation] => PR_UNIT [date] => 11-06-2013 [hours] => 0 [quantity] => 1)
[13] => Array ([article] => ESS-0834E/LE-CD200 [operation] => LAB_PLAKKE [date] => 11-06-2013 [hours] => 0 [quantity] => 1)
)
То, что я пытаюсь сделать, это рассчитывать на каждую дату (ключ «геодезический») сумму часов (в данном примере они все 0, но я все еще хочу это сделать, потому что это изменится в будущем). То, что было бы очень практично, - это сделать такой запрос, как sql, например, SELECT SUM(hours) GROUP BY date
, но это, к сожалению, не SQL.
Есть ли способ группировать (и заказывать) мой массив по определенному ключу (в данном случае «дате») или, если нет, есть ли другой способ получить результат, что я хочу?
EDIT
Недавно я добавил ключ «отдел», который должен быть сгруппированы по к. Таким образом, я не только хочу подсчитывать сумму «часов», но и «количество»
это действительно полезно для меня, спасибо! 2 вопроса? Я добавил ключевой «отдел» в свой массив. Также возможно «группировать» по 2 столбца. И второе: я тоже хочу подсчитать ключевое «количество». Можно ли сделать это в том же коде? Извините, что не заметил этого в моем вопросе. Я отредактирую свой вопрос с дополнительными требованиями – Jovano
, конечно, возможно '$ sums [$ v ['date']] [$ v ['department']]' small change, и это работает :) количество может быть засчитано на то же самое;) $ sums [$ v ['date']] [$ v ['department']] значение массива может быть также массивом, где вы можете поместить часы и количество и суммировать его. – Robert
Я редактировал код. Синтаксис, который вы написали, недействителен. – Robert