最小化使用sort()函数的PHP代码

问题描述 投票:1回答:1

我有这个功能,我试图将其放在一行上,但是我无法弄清楚如何在同一行上实现sort()。

# Mediana x̃    de un conjunto de elementos ($e)
Mediana($e=array()){    
  sort($e); 
  return (count($e)!=0)?((count($e)%2==0)?(($e[(count($e)/2)]+$e[((count($e)/2)+1)])/2):$e[((count($e)/2)+1)]):0;
}

[我不喜欢(从审美上来说)肮脏的方式:

sort($e); return (count($e)!=0)?((count($e)%2==0)?(($e[(count($e)/2)]+$e[((count($e)/2)+1)])/2):$e[((count($e)/2)+1)]):0;

[如果有人能给我一些提示,我将非常感激。Tnx。

php minify
1个回答
0
投票

您可以在条件中包括sort(),因此方法返回布尔值,并且在这种情况下,一旦排序后的数组保持排序状态。

function Mediana($e = array())
{
    return (count($e) != 0 && sort($e)) ? ((count($e) % 2 == 0) ? (($e[(count($e) / 2)] + $e[((count($e) / 2) + 1)]) / 2) : $e[((count($e) / 2) + 1)]) : 0;
}

function Mediana($e = array())
{
    return (sort($e) && count($e) != 0) ? ((count($e) % 2 == 0) ? (($e[(count($e) / 2)] + $e[((count($e) / 2) + 1)]) / 2) : $e[((count($e) / 2) + 1)]) : 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.