3v4l.org

run code in 300+ PHP versions simultaneously
<?php $members = array( array( 'num' => 2, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 2, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 3, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 3, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 3, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 3, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 3, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 5, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 9, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 9, 'rank' => 0, 'dense_rank' => 0, ), array( 'num' => 9, 'rank' => 0, 'dense_rank' => 0, ) ); $denseRank = 0; $gappedRank = 0; foreach ($members as &$row) { $denseRanks[$row['num']] ??= ++$denseRank; $row['dense_rank'] = $denseRanks[$row['num']]; ++$gappedRank; $gappedRanks[$row['num']] ??= $gappedRank; $row['rank'] = $gappedRanks[$row['num']]; // for better presentation: echo json_encode($row) . "\n"; } //var_export($members);
Output for git.master, git.master_jit, rfc.property-hooks
{"num":2,"rank":1,"dense_rank":1} {"num":2,"rank":1,"dense_rank":1} {"num":3,"rank":3,"dense_rank":2} {"num":3,"rank":3,"dense_rank":2} {"num":3,"rank":3,"dense_rank":2} {"num":3,"rank":3,"dense_rank":2} {"num":3,"rank":3,"dense_rank":2} {"num":5,"rank":8,"dense_rank":3} {"num":9,"rank":9,"dense_rank":4} {"num":9,"rank":9,"dense_rank":4} {"num":9,"rank":9,"dense_rank":4}

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:
29.5 ms | 406 KiB | 5 Q