最近趴了PHP官方的array函式,發現有多了一個array_product(),他出現在5.1.0之後的版本,可以將陣列裡的值進行相乘的動作,換句話說之前的階乘函式,可以有另外一種寫法了。

//*************************************************
//  函式名稱:階乘函式
//  功能說明:5! =  5 * 4 * 3 * 2 * 1 = echelon(5)
//*************************************************
function factorial(n){
    if(n == 1 || n == 0 ) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

改寫成這樣

array_product(range(1,5));
不過效能誰比較好呢?@_@,所以我利用之前文章提到的Xdebug來測試
function factorial($n){
    if($n == 1 || $n == 0 ) {
        return 1;
    } else {
        return $n * factorial($n - 1);
    }
}
factorial(30);
echo xdebug_time_index(); 
//0.00062918663024902
V.S
array_product(range(1,30));
echo xdebug_time_index();
//0.00033903121948242

=v=沒想到新的方法竟然又短又快耶,這算是一個新發現嗎XD

低溫烘培 發表在 痞客邦 PIXNET 留言(0) 人氣()