3v4l.org

run code in 300+ PHP versions simultaneously
<?php $products = array( array('idproduct' => 1, 'amount' => 5), array('idproduct' => 2, 'amount' => 10), array('idproduct' => 3, 'amount' => 11), array('idproduct' => 4, 'amount' => 5) ); addOrOverride($products, array('idproduct' => 4, 'amount' => 6)); var_dump($products); function addOrOverride(&$arr, $newItem) { $filtered = array_filter($arr, function($item) use($newItem) { return $item['idproduct'] == $newItem['idproduct']; }); if(count($filtered) > 0) { $key = key($filtered); $arr[$key] = array_merge($arr[$key], $newItem); } else { $arr[] = $newItem; } }
Output for git.master, git.master_jit, rfc.property-hooks
array(4) { [0]=> array(2) { ["idproduct"]=> int(1) ["amount"]=> int(5) } [1]=> array(2) { ["idproduct"]=> int(2) ["amount"]=> int(10) } [2]=> array(2) { ["idproduct"]=> int(3) ["amount"]=> int(11) } [3]=> array(2) { ["idproduct"]=> int(4) ["amount"]=> int(6) } }

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:
45.66 ms | 402 KiB | 8 Q