2010-06-22 53 views
0

我有一個$max這實質上是一個二維數組。如何輕鬆和優雅地做PHP矩陣操作?

$max每個元素是eithor 10

可以通過$max[$x][$y],其中$x是內0~WIDTH的整數,類似被表示爲$y

我的目的是找到$max總和大於CONSTANT,並獲得average distance行/列合格。

任何人都有一個很好的解決方案?

回答

0

我沒有測試過這一點,但它應該列和行總結工作:

//Map columns and rows into their respective values 
//Note that we preserve the col/row indexes 
$rowval = array(); 
$colval = array(); 
foreach($max as $k1 => $row) { 
    $rowval[$k1] = array_sum($row); 
    foreach($row as $k2 => $col) { 
    if(!isset($colval[$k2])) { 
     $colval[$k2] = 0; 
    } 
    $colval[$k2] += $col; 
    } 
} 

//Define filter function 
function is_over($val) { 
    return $val > CONSTANT; 
} 

//Filter out the cols/rows from their respective arrays 
//Keys will be preserved by array_filter 
$foundcols = array_filter($colval, 'is_over'); 
$foundrows = array_filter($rowval, 'is_over'); 

你還需要計算,雖然平均距離。

+0

謝謝,差不多工作! – wamp 2010-06-22 08:40:55