3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [1,1,1,2,2,3,3,4,1,1,2,2,3]; var_export( json_decode( preg_replace_callback( '/\b(\d+)(?:,\1)*\b/', function($m) { return sprintf( '{"%d":%d}', $m[1], count(explode(',', $m[0])) ); }, json_encode($array) ), true ) );

preferences:
24.49 ms | 409 KiB | 5 Q