【问题标题】:get min value and its related value from an associative array php从关联数组php中获取最小值及其相关值
【发布时间】:2018-12-29 10:25:50
【问题描述】:

我有一个这样的数组

$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

【问题讨论】:

  • jarak 在数组中的什么位置?
  • 已经把它编辑成距离,所以 jarak = 巴哈萨的距离

标签: php arrays min associative


【解决方案1】:

您可以先使用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 获取最小值并使用array_filter 过滤距离等于该值的结果:

$min = min(array_column($jartot, 'distance'));
$results = array_filter($jartot, function($x) use ($min){
    return $x['distance'] === $min;
});

Demo

【讨论】:

    猜你喜欢
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多