我正在使用一个显示一系列价格的PHP数组,其中单个项目的形式为"价格从价格到"。这是数组的一个例子:
List<AB> abs = astream.flatMap(a -> a.bs.map(b->new AB(a,b)))
.collect(Collectors.toList());
我现在需要检索数组中的最低价格和最高价格,但因为它们是一个范围我首先需要拉开每个数组项目中的每个价格。例如,使用上面的数组我希望能够返回如下内容:
Array
(
[0] => $625,000-$700,000
[1] => $550,000-$625,000
[2] => $1,000,000-$1,250,000
[3] => $925,000-$1,000,000
)
我是PHP的新手,在这一点上完全难以理解如何解析每个数组项中的每个值,然后获得最低/最高值。
答案 0 :(得分:1)
我会将所有规范化的价格放在数组中并使用php max,min函数。
<?php
$ranges = array(
"$625,000-$700,000",
"$550,000-$625,000",
"$1,000,000-$1,250,000",
"$925,000-$1,000,000",
);
$prices = array();
foreach ($ranges as $range) {
$prices = array_merge($prices, explode("-", preg_replace("/[\\$,]/i", "", $range)));
}
$maxPrice = max($prices);
$minPrice = min($prices);
答案 1 :(得分:0)
试试这个:
$array = Array
(
0 => '$625,000-$700,000',
1 => '$550,000-$625,000',
2 => '$1,000,000-$1,250,000',
3 => '$925,000-$1,000,000',
);
$tmp = array();
foreach($array as $key=>$value){
$cleanValue = explode('-', str_replace(array('$',','), array('',''), $value));
foreach($cleanValue as $k=>$v){
$tmp[] = $v;
}
}
$minValue = min($tmp);
$maxValue = max($tmp);
echo $minValue . ' '. $maxValue;
答案 2 :(得分:0)
请参阅以下代码。
将第一个值展开为数组,然后删除“$”,然后将值转换为整数。然后将值添加到数组中,最后调用min / max函数。
$maxPrice = 0;
$max_curr = 0;
$price_arr = array();
foreach($min_maxs as $min_max){
$min_max_arr = explode("-",$min_max); // string to array
array_walk($min_max_arr,"remove_dollar_commas"); // remove "$"
$price_arr = array_merge($price_arr , $min_max_arr ); // add to final array
}
$maxPrice = max($price_arr); // call max function to get maximum value
$minPrice = min($price_arr); // call min function to get minimum value
function remove_dollar_commas(&$subject){
$subject = intval( str_replace(array("\$",","), "", $subject) );
}