用数组中的min()获得便宜的价格

时间:2017-01-19 12:12:19

标签: php arrays min

我使用min()从阵列中获得最便宜的价格,但它显示的是昂贵的价格,而不是廉价的价格。我还需要从便宜的价格阵列中获取所有数据。

 $dumpData = array();

  if ( !empty($dumpData) && is_array($dumpData) ) {

    $minPriceArray = min($dumpData['data']);

    $price = $func->convert_amount($minPriceArray['currency'],   get_currency(), $minPriceArray['price']);
    echo '<span class="price"><small>From</small> '.$price.' '.get_currency().'</span>';

  }else{
    echo '<span class="price">No data found</span>';
  }

阵列

 array(4) {
   [0]=>
   array(8) {
     ["logo"]=>
     ["price"]=>
     int(649)
     ["currency"]=>
     string(3) ""
     ["availability"]=>
     string(7) "instock"
   },
   [1]=>
   array(8) {
     ["logo"]=>
     ["price"]=>
     int(849)
     ["currency"]=>
     string(3) ""
     ["availability"]=>
     string(7) "instock"
   },
   [2]=>
   array(8) {
   ...
   },
   [3]=>
   array(8) {
   ...
   }

 }

1 个答案:

答案 0 :(得分:1)

function find_min_price_array($arr) {
    $prices = array_column($arr, 'price');
    $min_price = min($prices);

    $min_price_array = array();

    foreach($arr as $key => $value) {
        if($value['price'] == $min_price) {
            $min_price_array[] = $value;
        }
    }

    return $min_price_array;
}

var_dump(find_min_price_array($arr));

用户定义函数find_min_price_array返回包含最低价格的数组。它还返回包含相同最低价格的数组。

array_column返回多维数组中列的所有值。 array_column($arr, 'price')可以获取数组中的所有价格,然后您可以使用min函数轻松找到最小值。然后,您可以检查循环中多维数组中每个数组的最低价格。

希望它有所帮助!