簡體   English   中英

從關聯數組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

演示版

如果有多個具有相同的距離,則可以使用array_column獲得最小值,並使用array_filter過濾距離等於該值的結果:

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

演示版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM