3v4l.org

run code in 300+ PHP versions simultaneously
<?php $students = [ ["name" => "...", "gender" => "male"], ["name" => "...", "gender" => "female"], ["name" => "...", "gender" => "female"], ["name" => "...", "gender" => "female"], ["name" => "...", "gender" => "male"], ["name" => "...", "gender" => "male"], ["name" => "...", "gender" => "male"], ]; $counters = ['female' => 1, 'male' => 1]; // determine which gender should start from 0 $genderCounts = array_count_values( array_column($students, 'gender') ); arsort($genderCounts); --$counters[key($genderCounts)]; // assign keys $result = []; foreach ($students as $student) { $gender = $student['gender']; $result[$counters[$gender]] = $student; $counters[$gender] += 2; } ksort($result); var_export($result);
Output for git.master, git.master_jit, rfc.property-hooks
array ( 0 => array ( 'name' => '...', 'gender' => 'male', ), 1 => array ( 'name' => '...', 'gender' => 'female', ), 2 => array ( 'name' => '...', 'gender' => 'male', ), 3 => array ( 'name' => '...', 'gender' => 'female', ), 4 => array ( 'name' => '...', 'gender' => 'male', ), 5 => array ( 'name' => '...', 'gender' => 'female', ), 6 => array ( 'name' => '...', 'gender' => 'male', ), )

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