此问题已在此处有答案:
Group 2d array's row data by one column and sum another column within each group to produce a reduced 2d array(3个答案)
11个月前关闭。
我在PHP中操作一个对象数组时遇到了困难。我需要按id
对对象进行分组,同时对points
求和。
起始对象数组:
[
{
"id": "xx",
"points": 25
},
{
"id": "xx",
"points": 40
},
{
"id": "xy",
"points": 40
},
]
我需要的:
[
{
"id": "xx",
"points": 65
},
{
"id": "xy",
"points": 40
},
]
作为一名前端人员,我在PHP中的对象/数组操作方面遇到了困难。任何帮助都将不胜感激!
4条答案
按热度按时间oxf4rvwz1#
我希望这个答案对你有帮助首先我将把对象改为数组并再次将结果返回给数组
输出enter image description here
jhkqcmku2#
qc6wkl3g3#
您可以使用
array_reduce
内置函数来完成这项工作。此外,当循环对象的数组(回调)时,您应该检查结果数组是否具有当前项目的ID,以验证是否需要将项目添加到结果数组或使点的总和属性。下面是一个例子:
这将导致如下结果:
希望对您有所帮助,请随时寻求进一步的帮助。
jq6vz3qz4#
让我们使用一个名为
$map
的辅助变量:构建您的Map:
现在让我们构建输出: