3v4l.org

run code in 300+ PHP versions simultaneously
<?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