如何从此数组中查找最小和最大值

时间:2016-01-19 10:36:34

标签: php arrays

我有这个数组以这种格式存储数组中的值

Array
(
        [0] => 0,20
        [1] => 21,50
        [2] => 201,300
        [3] => 301,400
)

现在我如何找到它中最小和最大的数值?

4 个答案:

答案 0 :(得分:0)

尝试如下:

$final_array = array();
foreach($a as $val)
{
    $exploded_val = explode(",",$val);
    $final_array[] = $exploded_val[0];
    $final_array[] = $exploded_val[1];
}

sort($final_array);

$min = $final_array[0];
$max = $final_array[count($final_array)-1];

echo $min.'>>'.$max;

答案 1 :(得分:0)

我认为你需要最小和最大范围。

对于最小和最大范围,首先遍历数组并替换

<{>} , .,以便它们成为数字(可比较)。

他们找到了结果数组的min()max()

找出元素所在的关键字。

现在,使用这些键访问原始数组的元素。

<?php
$org = $result = Array(
        '0,20',
        '21,50',
        '201,300',
        '301,400',
);

$result = array_map(function($el) {
    return str_replace(',','.',$el); }, $result
                   );
echo '<pre>';
$minKey = array_search(min($result), $result);
$maxKey = array_search(max($result), $result);

$min2 = $org[$minKey]; // Returns 0,20
$temp = explode(',', $min2);
$min = $temp[0];
echo $min; // Prints 0

echo "<br/>";
$max2 = $org[$maxKey]; // Returns 301,400
$temp = explode(',', $max2);
$max = $temp[1];
echo $max; // Prints 400
?>

答案 2 :(得分:0)

为什么不使用minmax函数?

答案 3 :(得分:0)

您应该注意如何存储数据......如果我理解得很好,您只需要爆炸数组值,安装正确的数组然后使用maxmin函数。

这样的事情:

$ar = array("0,20","21,50","201,300","301,400");
foreach ($ar as $el) {
    $el = explode(",", $el);
    $result[] = $el[0];
    $result[] = $el[1];
}

echo "min: ".min($result)."\n";
echo "max: ".max($result);