3v4l.org

run code in 300+ 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.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
Array ( [value] => 20 [sets] => Array ( [0] => Array ( [label] => Bi [female] => 20 ) [1] => Array ( [label] => Ci [female] => 20 ) ) )

preferences:
164.21 ms | 408 KiB | 5 Q