有条件地替换PHP 2D数组中的元素

时间:2014-06-10 16:23:40

标签: php arrays algorithm optimization execution

目前,我使用以下代码替换大于$value

的数组元素
for($i=0;$i<$row;$i++) {
            for($j=0;$j<$column;$j++) {
                if($solution[$i][$j] >= $value) {
                    $solution[$i][$j] = -1;
                }
            }
        }

有更好更快的方法吗?我有一个复杂的算法来生成拼图,我正在尝试优化执行时间。此代码是算法的一部分。

编辑:

这些是我通过尝试不同解决方案获得的执行时间:

For loops:

4.1007995605469E-5

Answer by mark:

0.00057792663574219

Foreach loops:

2.9087066650391E-5

1 个答案:

答案 0 :(得分:3)

尝试

array_walk_recursive(
    $solution, 
    function(&$aVal, $key, $value) {
        $aVal = ($aVal >= $value) ? -1 : $aVal;
    },
    $value
);

但你需要进行基准测试