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