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);

preferences:
34.47 ms | 409 KiB | 5 Q