<?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 git.master, git.master_jit, rfc.property-hooks
- {"sum_direct":400,"sum_indirect":3000}
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:
119.92 ms | 405 KiB | 5 Q