您好,我在互联网上的一段代码中找到了我想使用的东西,但是其中有一个问号,作为if / else语句。我要更换?加上我代码中的if / else语句。
$median = (count($athleticsArr) % 2 == 0)
? (($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2)
: ($athleticsArr[floor(count($athleticsArr) / 2)]);
答案 0 :(得分:1)
<?php
if(count($athleticsArr) % 2 == 0)){
$median = (($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2);
}else{
$median = ($athleticsArr[floor(count($athleticsArr) / 2)]);
}
?>
当您看到三元运算符时,可以按原样将其分为三部分,
condition
?
yes
:
no
?
适用于if
语句,:
适用于else语句,尝试用简单的方法做一两个,您肯定会得到
答案 1 :(得分:1)
这是一个采用一些最佳实践的代码段,例如仅调用一次函数。它还使用“按位比较” & 1
来确定计数是否为奇数。我们都假设您的数组值已经排序。
代码:(Demo)
$array = [1,3,4,7,11,16,19,21]; // output: 9
// $array = [1,3,4,7,11,16,19]; // output: 7
$count = sizeof($array); // cache the count
$index = floor($count/2); // cache the index
if (!$count) {
echo "no values";
} elseif ($count & 1) { // count is odd
echo $array[$index];
} else { // count is even
echo ($array[$index-1] + $array[$index]) / 2;
}
*当然您会在$median =
所在的echo
处进行交换。
答案 2 :(得分:0)
使用此代码:
<?php
if (count($athleticsArr) % 2 == 0) {
$median=(($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2);
} else{
$median=($athleticsArr[floor(count($athleticsArr) / 2)]);
}
?>
要这样做,您应该遵循以下步骤:
$variable=condition ? DoIf : DoElse;
= if(condition){DoIf}else{DoElse}