<?php
$json = '{
"users": [{
"user_id": 2,
"ref_id": 1,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": [{
"user_id": 58,
"ref_id": 2,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 59,
"ref_id": 2,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 111,
"ref_id": 2,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 116,
"ref_id": 2,
"package": [{
"name": "Diamond"
},
{
"direct": 1000
},
{
"indirect": 500
}
],
"children": 0
},
{
"user_id": 119,
"ref_id": 2,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
}
]
},
{
"user_id": 100,
"ref_id": 1,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": [{
"user_id": 101,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 102,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 103,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 104,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 105,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 106,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 107,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 108,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 109,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 110,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
},
{
"user_id": 117,
"ref_id": 100,
"package": [{
"name": "Diamond"
},
{
"direct": 1000
},
{
"indirect": 500
}
],
"children": 0
},
{
"user_id": 129,
"ref_id": 100,
"package": [{
"name": "Diamond"
},
{
"direct": 1000
},
{
"indirect": 500
}
],
"children": 0
},
{
"user_id": 130,
"ref_id": 100,
"package": [{
"name": "Basic"
},
{
"direct": 200
},
{
"indirect": 100
}
],
"children": 0
}
]
}
]
}';
$result['sum_direct'] = 0;
$result['sum_indirect'] = 0;
$parents_indirect = 0;
$array = json_decode($json, true)['users'];
foreach ($array as $users) {
$result['sum_direct'] += $users['package'][1]['direct'];
$parents_indirect += $users['package'][2]['indirect'];
}
array_walk_recursive($array, function ($v, $k) use (&$result) {
if ($k === 'indirect') {
$result['sum_indirect'] += $v;
}
});
$result['sum_indirect'] -= $parents_indirect;
echo json_encode($result);
- Output for 5.6.38, 7.1.0 - 7.1.24, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- {"sum_direct":400,"sum_indirect":3000}
preferences:
132.12 ms | 407 KiB | 5 Q