因此,我有一个整数值集合,它是由另一个函数的结果构建的,该函数每次都可以具有不同的值.考虑PHP中的以下内容:
$arr = [0,0,2,2,0,0,0,3,3];
我需要将其转换为:
$newArr = [null,0,2,2,0,null,0,3,3];
我要完成的是:如果值是> 0,其邻居应为0,其余应为null.
最好的策略是什么?
解决方法:
使用运算符优先级:
$zero = true;
$arr = [0,0,2,2,0,0,0,3,3];
$newArr = [];
foreach($arr as $k=>$v) {
if ($v) {
$newArr[] = $v;
$zero = false;
} else {
if ($zero and isset($arr[$k+1]) && !$arr[$k+1] || !isset($arr[$k+1]))
$newArr[] = null;
else
$newArr[] = 0;
$zero = true;
}
}
print_r($newArr);
标签:php,algorithm
来源: https://codeday.me/bug/20191118/2025011.html