2017-08-16 220 views
-2

我正在使用用户提供的各种产品尺寸。用户提供了长度,宽度和高度,但是为了计算运输成本,我已经采取了最长的测量并将其设置为长度并将其添加到周长,这是通过将两个较短的测量值相加并将它们乘以2来计算的。查找最大,最小和中间值

$PackageSize = length + (width*2 + height*2) 

我能找到它的值是使用最高:

$newlength=max($length, $width, $height); 

我无法弄清楚如何再找出哪些是剩下的两个值,所以我可以将它们插入式在正确的地方。

+0

你在问如何按顺序排列三个数字? – TZHX

+1

你试过了什么?关于SO的问题应包括[MVCE](http://stackoverflow.com/help/mcve)。另外,我猜这是重复的,并且已经被回答。 –

回答

2

对我来说,要做到这一点最简单的方法是利用PHP的真棒阵列功能。

// create an array from the three dimensions 
$sizes = array($length, $width, $height); 
// sorts the values from smallest to largest 
sort($sizes); 
// assigns the sorted values to the variables width, height, length 
list($width, $height, $length) = $sizes; 

// Now, $length is the longest dimension, $width is shortest, and $height is the middle value 
+0

在我看来这是一个很好的例子。它只会使用数组作为排序变量。如果它是一个函数,那么数组将会死亡并留下“无痕迹”,以后可能会再次意外地使用同一个数组的变量名称。 – Andreas

1

你为什么不排序?例如(如果值是数字)

$values = [$length, $width, $height]; 
rsort($values); 
$PackageSize = $values[0] + ($values[1]*2 + $values[2]*2); 
1

将值放入数组并对数组进行排序。然后你可以按顺序访问它们

$dimens = [$length, $width, $height] 
rsort($dimens) 
$dimens[0] // Is largest 
$dimens[1] // Is next 
$dimens[2] // Is smallest 
1

你可以把它们放在一个数组中并对它进行排序。

$length = 10; 
$width = 7; 
$height = 9; 

$array = [$length,$width,$height]; 

Sort($array); 

Echo "largest: " . $array[2] ."\n"; 
Echo "the other two " . $array[1] . " " . $array[0] 

https://3v4l.org/PmdZu

+0

对不起主要facepalm!我在想升序。 – Andreas

相关问题