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


How to find the smallest and largest value from this array

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

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

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

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

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

, .使它们成为数字(可比)。

他们找出结果数组的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
?>

尝试如下:

$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;

为什么不使用最小和最大函数?

你应该注意你如何存储你的数据...如果我理解得很好,你只需要分解数组值,挂载一个合适的数组,然后使用 max 和 min 函数。

像这样:

$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);