如何轻松优雅地进行PHP矩阵操作?

时间:2010-06-22 08:05:45

标签: php matrix

我有一个$max,它本质上是一个二维数组。

$max中的每个元素都是eithor 10

可以用$max[$x][$y]表示,其中$x0~WIDTH内的整数,类似于$y

我的目的是在总计大于$max的{​​{1}}中找到,然后获取{{1在符合条件的行/列之间。

任何人都有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分: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');

你仍然需要计算平均距离。