Как легко и изящно выполнить матричную работу PHP? - PullRequest
0 голосов
/ 22 июня 2010

У меня есть $max, который по сути является двумерным массивом.

Каждый элемент в $max является eithor 1 или 0,

можно обозначить как$max[$x][$y], где $x - это целое число в 0~WIDTH, аналогичное $y

Моя цель - найти строк и столбцов в $max, которая суммирует больше, чем CONSTANT, и получает average distance между строками / столбцами , которые соответствуют требованиям.

У кого-нибудь есть хорошее решение?

1 Ответ

0 голосов
/ 22 июня 2010

Я не проверял это, но он должен работать для суммирования столбцов и строк:

//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');

Вы все равно должны рассчитать среднее расстояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...