我有矩阵,这个想法是写从每行给出的最大和最小数目的代码,没有任何功能,只是纯粹的逻辑。 例如:

MAX数应为: 567,789,900,906,897

闵数字应该是: 45,100,191,323,101

[45, 456, 321, 344, 567],
[100, 434, 173, 400, 789],
[191, 211, 457, 809, 900],
[431, 323, 432, 805, 906],
[708, 232, 897, 101, 696]
$arrNxm = [
  [45, 456, 321, 344, 567],
  [100, 434, 173, 400, 789],
  [191, 211, 457, 809, 900],
  [431, 323, 432, 805, 906],
  [708, 232, 897, 101, 696]
];

$rows = 5;
$cols = 5;

$intValue = 1;

$max = $arrNxm[0][0];

for($row = 0; $row < $rows; $row++)
{
  $max = $arrNxm[$row][0];
  for($col = 0; $col < $cols; $col++)
  {
    if($arrNxm[$row][$col] > $max)
    {
      $max = $arrNxm[$row][$col];
    }
  }
}


echo "<pre>";
var_dump($max);
echo "</pre>";

当我运行我的代码,我得到了一个数字,我想不出什么我想这样做,以获得正确的输出。

分析解答

干得好:

$arrNxm = [
  [45, 456, 321, 344, 567],
  [100, 434, 173, 400, 789],
  [191, 211, 457, 809, 900],
  [431, 323, 432, 805, 906],
  [708, 232, 897, 101, 696]
];

$row = 5;
$col = 5;
$min = $max = array();

for( $i = 0; $i < $row; $i++ ) {
    $min_val = $max_val = $arrNxm[ $i ][0];    
    for( $j = 0; $j < $col; $j++ ) {
        //echo $arrNxm[ $i ][ $j ]." ";
        if( $min_val > $arrNxm[ $i ][ $j ] ) {
            $min_val = $arrNxm[ $i ][ $j ];
        }

        if( $max_val < $arrNxm[ $i ][ $j ] ) {
            $max_val = $arrNxm[ $i ][ $j ];
        }
    }
    // echo $min_val.PHP_EOL;
    $min[] = $min_val;
    $max[] = $max_val;
}
print_r( $min );
print_r( $max );

输出:

Array
(
    [0] => 45
    [1] => 100
    [2] => 191
    [3] => 323
    [4] => 101
)
Array
(
    [0] => 567
    [1] => 789
    [2] => 900
    [3] => 906
    [4] => 897
)