1

これは私の配列です

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を取得します

これは、値が金銭の文字列に含まれているためだと思います。

この配列の実際の最大値と最小値を取得する方法を教えてもらえますか?これは本当にお金の文字列によるものですか?

前もって感謝します

この配列は、多次元配列から削除されます。それが通常の配列であれば、それは簡単でしょう

4

3 に答える 3

2

「$」記号を削除して、php が値を数値として扱うようにします。

于 2012-09-04T16:57:49.290 に答える
1

複数の通貨を使用する場合を除き、数値のみを保存することを検討してください。このコードは最小値と最大値を取得する必要があります

$copy = $list;
foreach($copy as $key=>$value)$copy[$key] = str_replace('$', '', $value);

echo $maxprice = max($copy);
echo $minprice = min($copy);
于 2012-09-04T17:20:13.077 に答える
1

配列では 10 進数値 (「$」なし) を使用する必要があります。ドル記号は、ディスプレイに出力する場合にのみ適用する必要があります。

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);
于 2012-09-04T16:58:11.707 に答える