无法获取货币字符串数组的最大值和最小值


Not Getting Max and Min Value for Money String Array

这是我的数组

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