我有一系列用户数据,其中包括服务成本
cellForRow
67-这是用户ID
我如何获得具有最小值和最大值以及像1800-3200这样的回声的新数组
如果仅指定一个值或min = max,则应显示一个值
谢谢)
答案 0 :(得分:2)
您可以遍历一系列服务成本以制作一系列新的正义成本。然后,很容易找到最小值/最大值。
类似的事情应该起作用:
(~a | r)
答案 1 :(得分:1)
尝试一下
$val = array('cost_service_1'=>array('2500'),
'cost_service_2'=>array('500'),
'cost_service_3'=>array('1500'));
$total = array();
foreach($val as $value){
array_push($total,$value[0]);
}
if(min($total) == max($total))
echo max($total);
else
echo min($total).'-'.max($total);
答案 2 :(得分:1)
或者参考这个。
//initialize your $costs array variable
$costs =[];
//say this is your data structure
$data = [
"cost_service_1"=>[2500],
"cost_service_2"=>[3200],
"cost_service_3"=>[2000],
"cost_service_4"=>[4800]
];
//var_dump($data);
foreach ($data as $cost_service) {
//merge the current $cost_service to existing $cost using array_merge
/**
* @see http://php.net/manual/en/function.array-merge.php
*/
$costs = array_merge($costs, $cost_service);
}
//get the min and max
$min = min($costs);
$max = max($costs);
//display the min
//echo 'min:'. $min ."\n";
//display the max
//echo 'max:'. $max ."\n";
echo $min==$max?$min:$min.'-'.$max;
答案 3 :(得分:1)
使用array_column(),array_unique(),max()和min()。
Array_column隔离数组的一列,在这种情况下,我们需要索引0
,因为那是开销所在。
Array_unique确保仅返回每个成本中的一个,因此,如果$ costs中有多个值,则存在一个范围;如果只有一个值,则它要么是$ data中的一个值,要么全部相等。
$data = [
"cost_service_1"=>[2500],
"cost_service_2"=>[3200],
"cost_service_3"=>[2000],
"cost_service_4"=>[4800]
];
$costs = array_unique(array_column($data, 0));
if(count($costs)>1){
echo "Max cost " . max($costs) . "\nMin cost ". min($costs);
}else{
echo "Cost " . $costs[0];
}
//Max cost 4800
//Min cost 2000