在PHP中查找多维数组的值有明显的延迟吗?

时间:2012-03-16 08:19:42

标签: php arrays optimization

以下哪项是更优化的方法?选项A或B?

选项A:两次查找多维数组的值

if($my_array["dimension1"]["dimension2"]["dimension3"] > 0 ) {
    echo $my_array["dimension1"]["dimension2"]["dimension3"];
}

选项B:查找多维数组的值一次,但需要额外的变量定义

$dimension3 = $my_array["dimension1"]["dimension2"]["dimension3"];
if($dimension3 > 0) {
    echo $dimension3;
}

我个人认为选项B更具可读性,但是这段代码执行了几十万次,所以更优化的方法会优先考虑。

3 个答案:

答案 0 :(得分:1)

我认为选项B在表演方面更胜一筹。

在运行时,必须找到您指定的多维数组的单元格所指向的内存位置。输入一个简单的变量值更快。

因此,如果您输入一次数组并将值存储在临时变量中,那么您的脚本将分配更多内存(以存储临时变量)但是您将很快输入所需值的第二倍!

当然可以进行其他类型的优化,以证明我所说的更好的方法是自己测试

答案 1 :(得分:0)

随着你的项目变得越来越大(指的是调用这些数组的数量),你想要选择B ......但是这个很小,我想不出一个真正显着差异的例子。

答案 2 :(得分:-1)

我会选择选项A.简单来说,因为选项B有额外的变量分配,加上额外的赋值操作。

但是,收益微不足道;但仍然是一个收获。 : - )