Php在2D数组中找到最小值的关键字

I have the following 2D array and I would like to get the key of the smalest value in the [0] column if done is equal to no

$graph= array(
"CityA" => array(
    "0" => "1",
    "1" => "CityC",
    "done" => "no",
    ),
"CityB" => array(
    "0" => "4",
    "1" => "CityA",
    "done" => "no",
    ),
"CityC" => array(
    "0" => "5",
    "1" => "CityA",
    "done" => "no",
    ),
);

Try this,

$arr = array_map(function($v){return $v[0];}, $graph);
$key = array_keys($arr, min($arr));

Here you go.

$tes = min( array_column( $graph, 0 ) );
$key = array_search( $tes, array_column( $graph, 0 ) );
$array_keys = array_keys($graph);

echo $array_keys[$key];

Input:

$graph=[
        "CityB"=>["0"=>"4","1"=>"CityA","done"=>"no"],
        "CityA"=>["0"=>"1","1"=>"CityC","done"=>"no"],
        "CityD"=>["0"=>"1","1"=>"CityD","done"=>"yes"],
        "CityC"=>["0"=>"5","1"=>"CityA","done"=>"no"]
       ];

Method:

// remove all subarrays where 'done' != 'no'
$graph=array_filter($graph,function($a){return $a['done']=='no';});

// sort array on first column in subarray ASC while preserving keys
asort($graph);

// get first key
echo key($graph);

Output:

CityA

I think this is simpler than Kris' way.