php - 用周围的 null,0 替换数组中的值

标签 php algorithm

所以我有一个整数值的集合,它是根据另一个函数的结果构建的,该函数每次都可以有不同的值。在 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 - 用周围的 null,0 替换数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278378/

相关文章:

php - 带有 php 变量和 "%"的 mysql 查询

php - 我可以在应用程序文件夹的index.php中设置active_group吗?

javascript - ajax post to file 函数什么都不做

根据剩余空间将作业分配给主机的算法

php - 获取最近过去的星期六(上星期六)

algorithm - 7 张扑克牌手评估器

.net - 基于规则/限制返回对象列表的算法

algorithm - 数组的 N 次分区,每个分区的总和相等

java - 如何让程序更快 [Keypad_Sticky_Note]

php - 邮件不使用 SMTP 通过 SSL 使用 PHPMailer 发送