从关联数组中获取最小值及其相关值 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

您可以先使用 usortdistance 对数组进行排序,然后从第一个数组中获取值:

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

Demo

如果有多个距离相同,您可以使用 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;
});

Demo