我的项目有麻烦。
首先,我有一个类似这样的数据:https://jsoneditoronline.org/?id=c6d15407962e4d1b986435ad3c283b4e
然后我使用此分组数据:
private function _group_by($array, $key) {
$new = [];
foreach ($array as $value) {
$new[$value[$key]][] = $value;
}
return $new;
}
$ key ='water_id'
之后,结果如下:https://jsoneditoronline.org/?id=72991d45938c49a38900703feb3a60e7
从上面的结果中,我无法迭代数据(我想从开始就进行迭代)。所以,我想能够迭代数据,我的group by array函数有问题吗?如果您了解我想要的,请提供帮助。
答案 0 :(得分:1)
您可以使用集合来操纵数组或可遍历对象。 Grouping in CakePHP's Collection
use Cake\Collection\Collection;
private function _group_by($array, $key) {
$collection = new Collection($array);
return $collection->groupBy('water_id')->toArray();
}
答案 1 :(得分:0)
您将其标记为Laravel应用,对吗?检出收藏集:https://laravel.com/docs/5.6/collections。
$result = null;
collect($array)->groupBy($keyName)->each(function ($group, $key) use (&$result) {
foreach ($group as $element => $index) {
//Do something to $result.
}
});
根据您的情况,map
或transform
可能比each
更合适。