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 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0
{"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}
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.
Output for 7.0.16
Parse error: syntax error, unexpected '=' in /in/QadLk on line 64
Process exited with code 255.
Output for 5.6.20 - 5.6.40
Parse error: syntax error, unexpected '?' in /in/QadLk on line 64
Process exited with code 255.

preferences:
151.18 ms | 410 KiB | 5 Q