php 計算數組最大最小值 大神進
怪我咯
怪我咯 2017-05-18 10:46:03
0
6
842

#這樣的陣列 如何 計算出 最大值 最小值

一眼可以看出最小值是 0 最大值是 459 但是怎麼 用php算出來尼

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(6)
小葫芦

1.轉換成一維數組,分別用min和max求最小和最大

function getMaxAndMin($items){
    $newItems=[];
    $cutStr=',';//要分割的字符
    foreach($items as $item)
    {
    //保证是String并且包含','
      if(is_string($item) && strpos($item,$cutStr)!==false)
      {
        list($t1,$t2)=explode(',',$item)
        $newItems[]=$t1;
        $newItems[]=$t2;
       }else{
           $newItems[]=$item;
       }
    }
    return [min($newItems),max($newItems)];
}
$exampleArr=[
'0,129',
'130,249',
'250,459'
];
list($min,$max)=getMaxAndMin($exampleArr);

補充一個樓下的方案,更簡單
@jacoob_w

function getMaxAndMin($items,$operator=',')
{
    $data = explode($operator, join($operator,$data));
    return [min($data),max($data)];
}
伊谢尔伦

雷雷

仅有的幸福

1.你可以手動去實作演算法,不過效能可想而知
2.建議使用PHP內建函數:http://php.net/manual/zh/func...

世界只因有你
$arr = array(
    '0,129',
    '130,249',
    '250,459',
);
$mix = intval($arr[0]);
$max = explode(',', end($arr))[1];

結合實際情況使用
因為見到題主還有其他的問題,認定他的數據結構就是這樣,大小從上至下增加

我想大声告诉你

這麼快就採納答案了,個人覺得採納的不是最優方案呀。

$data = array(
    '0,129',
    '130,249',
    '380,22'
);

$dataArr = explode(',', join(',',$data));
echo "max:".max($dataArr)."<br/>";
echo "min:".min($dataArr);
phpcn_u1582

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板