我有这个数组,它以这种格式存储数组中的值
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);