0
我有一個$max
這實質上是一個二維數組。如何輕鬆和優雅地做PHP矩陣操作?
在$max
每個元素是eithor 1
或0
,
可以通過$max[$x][$y]
,其中$x
是內0~WIDTH
的整數,類似被表示爲$y
我的目的是找到行和列在$max
總和大於CONSTANT
,並獲得average distance
行/列合格。
任何人都有一個很好的解決方案?
我有一個$max
這實質上是一個二維數組。如何輕鬆和優雅地做PHP矩陣操作?
在$max
每個元素是eithor 1
或0
,
可以通過$max[$x][$y]
,其中$x
是內0~WIDTH
的整數,類似被表示爲$y
我的目的是找到行和列在$max
總和大於CONSTANT
,並獲得average distance
行/列合格。
任何人都有一個很好的解決方案?
我沒有測試過這一點,但它應該列和行總結工作:
//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');
你還需要計算,雖然平均距離。
謝謝,差不多工作! – wamp 2010-06-22 08:40:55