这是我的数组
Array ( [0] => $30.00 [1] => $200.00 [2] => $138.00 [3] => $100.00 [4] => $30.00
[5]=>$30.00 [6] => $30.00 )
尝试从这个数组中获取最大值和最小值
echo $maxprice = max($list);
echo $minprice = min($list);
我得到$30.00的最大和$100.00的最小
我猜这是因为价值观在钱串里。
有人能告诉我如何才能得到这个数组的真正最大值和最小值吗?这真的是因为钱串吗?
提前感谢
注意此数组是从多维数组中剥离出来的。如果它是普通数组,它将是简单的
删除'$'符号以确保php将值视为数字
您需要在数组中使用十进制值(不带"$")。美元符号应仅在输出显示时应用。
要将字符串转换为浮点值,只需array_walk()
数组即可。
如果在PHP 5.3或更高版本上,我喜欢使用类似的闭包
array_walk($array, function (&$value, $key) {
$value = (float)ltrim($value, '$');
});
如果在旧版本的PHP中,您需要定义一个单独的函数,并像下面的一样调用array_walk中的函数
array_walk($array, 'strip_dollar_signs');
function strip_dollar_signs (&$value, $key) {
$value = (float)ltrim($value, '$');
}
然后只需像一样对数组进行排序
sort($array, SORT_NUMERIC);
除非使用多种货币,否则请考虑仅存储数值。这个代码应该能让你获得最小和最大的
$copy = $list;
foreach($copy as $key=>$value)$copy[$key] = str_replace('$', '', $value);
echo $maxprice = max($copy);
echo $minprice = min($copy);