从关联数组中获取最小值及其相关值 php
get min value and its related value from an associative array php
我有一个这样的数组
$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',
),
);
我想获得最小 distance
的值,并获得它的 id_titik
。
我尝试使用 array_column
来获取距离的最小值,
echo min(array_column($jartot, 'distance'));
但是如何同时得到它的id_titik
?
您可以先使用 usort 按 distance
对数组进行排序,然后从第一个数组中获取值:
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
如果有多个距离相同,您可以使用 array_column to get the lowest value and use array_filter 过滤距离等于该值的结果:
$min = min(array_column($jartot, 'distance'));
$results = array_filter($jartot, function($x) use ($min){
return $x['distance'] === $min;
});
我有一个这样的数组
$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',
),
);
我想获得最小 distance
的值,并获得它的 id_titik
。
我尝试使用 array_column
来获取距离的最小值,
echo min(array_column($jartot, 'distance'));
但是如何同时得到它的id_titik
?
您可以先使用 usort 按 distance
对数组进行排序,然后从第一个数组中获取值:
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
如果有多个距离相同,您可以使用 array_column to get the lowest value and use array_filter 过滤距离等于该值的结果:
$min = min(array_column($jartot, 'distance'));
$results = array_filter($jartot, function($x) use ($min){
return $x['distance'] === $min;
});