我有一个函数,我想把它放在一行,但我不知道如何能在同一行实现排序()。
# 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.
你可以包括 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;
}