Heim > Fragen und Antworten > Hauptteil
So berechnen Sie den Maximalwert und den Minimalwert eines solchen Arrays
Sie können auf einen Blick sehen, dass der Mindestwert 0 und der Höchstwert 459 beträgt, aber wie berechnet man ihn mit PHP?
高洛峰2017-05-18 10:48:03
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)];
}
伊谢尔伦2017-05-18 10:48:03
<?php
define('CLI_SCRIPT', true);
$example = array(
'0, 129',
'130, 249',
'250, 459'
);
$new_arr = [];
foreach ($example as $item) {
$new_items = explode(',', $item);
$new_arr = array_merge($new_arr, $new_items);
}
var_dump($new_arr);
sort($new_arr, SORT_NUMERIC); //排序
$min = array_shift($new_arr); //最小值
$max = array_pop($new_arr); //最大值
var_dump($min);
var_dump($max);
世界只因有你2017-05-18 10:48:03
$arr = array(
'0,129',
'130,249',
'250,459',
);
$mix = intval($arr[0]);
$max = explode(',', end($arr))[1];
结合实际情况使用
因为见到题主还有其他的问题,认定他的数据结构就是这样,大小从上至下增加
我想大声告诉你2017-05-18 10:48:03
这么快就采纳答案了,个人觉得采纳的不是最优方案呀。
$data = array(
'0,129',
'130,249',
'380,22'
);
$dataArr = explode(',', join(',',$data));
echo "max:".max($dataArr)."<br/>";
echo "min:".min($dataArr);
phpcn_u15822017-05-18 10:48:03
$data = ['0,129','130,249','250,459'];
$str=implode(',',$data);
$arr=explode(',',$str);
var_dump(max($arr));
var_dump(min($arr));