从php中的多维数组中获取最小和最大组值

时间:2014-11-21 13:20:02

标签: php arrays

我有像这样的多维数组

(
    [0] => Array
        (
            [date] => 2014-11-05
            [price] => 40800.00
        )

    [1] => Array
        (
            [date] => 2014-11-05
            [price] => 42699.00
        )

    [2] => Array
        (
            [date] => 2014-11-07
            [price] => 43500.00
        )

)

我如何获得价格日期的价值,其中价格最低价格最高在PHP吗?

2 个答案:

答案 0 :(得分:2)

array_reduce获取最大值:

$result = array_reduce($arr, function($memo, $el) {
  if($memo[0] < $el['price']) {
    $memo = array($el['price'], $el);
  }
  return $memo;
}, array(0, null));

echo $result[1]; // contains the maximal element

我想如何获得最小值就足够了。

另一方面,您可以sort一个数组,然后获取第一个和最后一个值:

usort($arr, function($a, $b) { 
  return ($a['price'] < $b['price']) ? 
      -1 : (int) !($a['price'] === $b['price']); 
});

现在你有一个按价格排序的数组。

答案 1 :(得分:1)

     $arr=array(
      array
            (
                'date' => 2014-11-05,
                'price' => 40800.00
            ),

         array
            (
                'date' => 2014-11-05,
                'price' => 42699.00
            )
    ,
         array
            (
                'date' => 2014-11-07,
                'price' => 43500.00
            )

    );
        $temp=0;
        foreach($arr as $person) {
            $p=$person['price'];
            if($temp<$p)
              $temp=$p;

        }
        echo 'Max price: '. $temp;

         $t=$arr[0]['price'];
        foreach($arr as $person) {
           $p=$person['price'];
             if($t>$p)
             $t=$p;

           }
echo "Min price: ".$t;