所以,我需要找出索引数组的任意两个随机值之间可能存在的最大差异,我不确定我的答案是否正确,因为你知道这对于这个问题的重要性来说太简单了:
function($array)
{
asort($array);
$diff = $array(sizeof($array) - 1) - $array(0);
return $diff;
}
我确信这是正确的,然后我再次怀疑!
答案 0 :(得分:1)
你是对的,你会发现最大的差异在最大值和最小值之间。但是,您可以通过简单地扫描数组来查找最小值和最大值而无需排序,从而更有效地实现这一目标(O(N)而不是O(N log N))。
答案 1 :(得分:1)
只是围绕着逻辑,这是一种手动方式:
$myarray = array(
'this' => 2,
'that' => 14,
'them' => -5,
'other' => 200,
'nothing' => 42,
'somethingelse' => 1,
'you' => 10,
'me' => 30);
foreach ($myarray as $key => $value) {
if (!isset ($min) || $value < $min) { $min = $value; }
if (!isset ($max) || $value > $max) { $max = $value; }
}
$diff = $max - $min;
echo $diff;