如何在数组中查找min值及其关联键

时间:2017-12-02 04:43:43

标签: php arrays

我试图获取具有最小值的数组的键和值。 这是我的代码。 我有空值变量 我想要非空的值和值,我需要一个键和值min来自数组或任何其他模式(如果可能的话)。

 <?php
      $serial_sale_price    ='2';
        $promo_sale_price   ='';
        $inv_sale_price     ='300.00';
        $price_search_seq = 'B';
        //validate for 0 values
        if($serial_sale_price!='' && $serial_sale_price==0)
        {
            $serial_sale_price='0.00';
        }
        if($promo_sale_price!='' && $promo_sale_price==0)
        {
            $promo_sale_price='0.00';
        }
        if($inv_sale_price!='' && $inv_sale_price==0)
        {
            $inv_sale_price='0.00';
        }


        $remove_empty = array('S'=>$serial_sale_price,
                               'P'=>$promo_sale_price, 
                               'I'=>$inv_sale_price);
        $find_min = array_filter($remove_empty); // Array which required in 
        echo "<pre>";
        print_r($find_min);
        $sale_price =  min($find_min);//Minimum Price for the array 
        $price_rule = '';//here i want to get the key which have min value

        echo "sales price:$sale_price,price_rule:$price_rule";

如何一次获取最小值的键和最小值的键。 从我的例子中我所期待的是什么。 如果最小值为 serial_sales_price ,则密钥为&#39; <&#39; ,值为 2

1 个答案:

答案 0 :(得分:0)

// Sample by PHP Method 

$var = array_keys($remove_empty , min($remove_empty ));
//$var[0] for letest key have minimum value.    

//This function returns the key for the minimum value. 

function getMinKey( $array )
{
    $min = 0;
    $key = '';
    foreach( $array as $k => $v )
    {
        $min = min($array);
    }
    foreach( $array as $k => $v )
    {

        if($min == $v)
        {
            $key = $k;
        }


    }
    return $key;
}

  echo getMinKey($remove_empty); // for min value key;