2 回答
TA贡献1794条经验 获得超7个赞
您需要迭代数组并比较每个数字,然后保存数字(如果它比旧数字更接近您的针):
function precessorAndSuccessor(array $numbers, int $needle){
$pre = NULL;
$suc = NULL;
foreach($numbers as $number){
if($number < $needle){
if($pre === NULL || $pre < $number){
$pre = $number;
}
}elseif($number > $needle){
if($suc === NULL || $suc > $number){
$suc = $number;
}
}
}
return [
"predecessor" => $pre,
"successsor" => $suc
];
}
``
TA贡献1797条经验 获得超4个赞
如果对数组进行排序,则只需运行并检查:
$num = 7;
$pre = $suc = false;
sort($array);
foreach($array as $v) {
if($v < $num) { $pre = $v; }
if($v > $num) { $suc = $v; break; }
}
- 2 回答
- 0 关注
- 100 浏览
添加回答
举报