3v4l.org

run code in 500+ PHP versions simultaneously
<?php $data = [["label" => "Ai", "male" => 0, "female"=>10, ], ["label" => "Bi", "male" => 0, "female"=>20, ], ["label" => "Ci", "male" => 10, "female"=>20, ],]; //$minmax = 'min'; //$gen = 'male'; function getMinMaxGen($data,$minmax,$gen){ $res = ['value' => 0,'sets' => []]; if(in_array($minmax,['min','max'])){ $arcol = array_column($data,$gen); $res['value'] = $minmax($arcol); } if(in_array($gen,['male','female'])){ foreach($data as $person){ if ($person[$gen] === $res['value']) $res['sets'][] = ['label' => $person['label'], "$gen" => $person[$gen]]; } } return $res; } $result = getMinMaxGen($data,'max','female'); print_r($result); //print_r(getMinMaxGen($data,'min','female')); //print_r(getMinMaxGen($data,'max','male')); //print_r(getMinMaxGen($data,'min','male'));
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
Array ( [value] => 20 [sets] => Array ( [0] => Array ( [label] => Bi [female] => 20 ) [1] => Array ( [label] => Ci [female] => 20 ) ) )

preferences:
106.87 ms | 1539 KiB | 4 Q