i have an array like this
$jartot = array(
0 => array(
'id_titik' => '1',
'distance' => '300',
'name_titik' => 'titik A',
),
1 => array(
'id_titik' => '2',
'distance' => '412',
'name_titik' => 'titik B',
),
2 => array(
'id_titik' => '3',
'distance' => '130',
'name_titik' => 'titik C',
),
);
i want to get value of min distance
, and also get its id_titik
. i trying use array_column
to get min value of distance,
echo min(array_column($jartot, 'distance'));
but how to get its id_titik
at the same time?
You might first sort the array using usort by distance
and then get the values from the first array:
usort($jartot, function($a, $b){
return $a['distance'] > $b['distance'];
});
echo $jartot[0]['id_titik']; // 3
echo $jartot[0]['distance']; // 130
echo $jartot[0]['name_titik']; // titik C
If there are multiple with the same distance you could use array_column to get the lowest value and use array_filter to filter the result where distance equals that value:
$min = min(array_column($jartot, 'distance'));
$results = array_filter($jartot, function($x) use ($min){
return $x['distance'] === $min;
});