3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array= [ ['name' => 'block.0.name', 'value' => 'vda'], ['name' => 'block.0.backingIndex', 'value' => 2], ['name' => 'block.0.rd.reqs', 'value' => 248907], ['name' => 'block.0.rd.bytes', 'value' => 9842014208], ['name' => 'block.0.rd.times', 'value' => 372870570891], ['name' => 'block.1.name', 'value' => 'hda'], ['name' => 'block.1.backingIndex', 'value' => 30], ['name' => 'block.1.rd.reqs', 'value' => 2871], ['name' => 'block.1.rd.bytes', 'value' => 9677156], ['name' => 'block.1.rd.times', 'value' => 620637479], ['name' => 'block.2.name', 'value' => 'cda'], ['name' => 'block.2.backingIndex', 'value' => 30], ['name' => 'block.2.rd.reqs', 'value' => 2871], ['name' => 'block.2.rd.bytes', 'value' => 9677156], ['name' => 'block.2.rd.times', 'value' => 620637479], ['name' => 'vcpu.0.state', 'value' => 1], ['name' => 'vcpu.0.time', 'value' => 963654400000000], ['name' => 'vcpu.0.wait', 'value' => 0], ['name' => 'vcpu.1.state', 'value' => 1], ['name' => 'vcpu.1.time', 'value' => 936409070000000], ['name' => 'vcpu.1.wait', 'value' => 0], ['name' => 'vcpu.2.state', 'value' => 1], ['name' => 'vcpu.2.time', 'value' => 943396180000000], ['name' => 'vcpu.2.wait', 'value' => 0], ['name' => 'vcpu.3.state', 'value' => 1], ['name' => 'vcpu.3.time', 'value' => 959496330000000], ['name' => 'vcpu.3.wait', 'value' => 0], ['name' => 'balloon.current', 'value' => 16777216], ['name' => 'balloon.maximum', 'value' => 34534530], ['name' => 'balloon.swap_in', 'value' => 0], ['name' => 'balloon.swap_out', 'value' => 0], ['name' => 'balloon.major_fault', 'value' => 262], ['name' => 'balloon.minor_fault', 'value' => 132293], ['name' => 'balloon.unused', 'value' => 16153712], ['name' => 'balloon.available', 'value' => 16396312], ]; $result = []; foreach ($array as ['name' => $name, 'value' => $value]) { $parts = explode('.', $name); $parentKey = $parts[0] . 's'; $childKey = implode(array_splice($parts, 0, ctype_digit($parts[1]) ? 2 : 1)); $grandchildKey = implode('.', $parts); if ($grandchildKey !== 'name') { $result[$parentKey][$childKey][$grandchildKey] = $value; } } var_export($result);
Output for git.master, git.master_jit, rfc.property-hooks
array ( 'blocks' => array ( 'block0' => array ( 'backingIndex' => 2, 'rd.reqs' => 248907, 'rd.bytes' => 9842014208, 'rd.times' => 372870570891, ), 'block1' => array ( 'backingIndex' => 30, 'rd.reqs' => 2871, 'rd.bytes' => 9677156, 'rd.times' => 620637479, ), 'block2' => array ( 'backingIndex' => 30, 'rd.reqs' => 2871, 'rd.bytes' => 9677156, 'rd.times' => 620637479, ), ), 'vcpus' => array ( 'vcpu0' => array ( 'state' => 1, 'time' => 963654400000000, 'wait' => 0, ), 'vcpu1' => array ( 'state' => 1, 'time' => 936409070000000, 'wait' => 0, ), 'vcpu2' => array ( 'state' => 1, 'time' => 943396180000000, 'wait' => 0, ), 'vcpu3' => array ( 'state' => 1, 'time' => 959496330000000, 'wait' => 0, ), ), 'balloons' => array ( 'balloon' => array ( 'current' => 16777216, 'maximum' => 34534530, 'swap_in' => 0, 'swap_out' => 0, 'major_fault' => 262, 'minor_fault' => 132293, 'unused' => 16153712, 'available' => 16396312, ), ), )

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:
52.37 ms | 409 KiB | 5 Q