Php 循环中的最大值和最小值

Php 循环中的最大值和最小值,php,Php,我正在计算每列的平均值、最小值、最大值。 最大值和最小值的第16列值出现错误。平均值工作正常。 错误仅限于最后一列的大数组,我还收到了一个通知错误 代码如下 mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error()); mysql_select_db("db"); $qry = mysql_query("select blob_field from table where id=1"

我正在计算每列的平均值、最小值、最大值。 最大值和最小值的第16列值出现错误。平均值工作正常。 错误仅限于最后一列的大数组,我还收到了一个通知错误

代码如下

mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
mysql_select_db("db");
$qry  =  mysql_query("select blob_field from table where id=1");
$arr = mysql_fetch_row($qry) ;

$rt  =  explode("\n",$arr[0]);
$header_arr1 = explode(',',$rt[0]);
$header1 = array();
$channels = count($header_arr1)-2 ;
$header1[]  = join(',', array_slice($header_arr1, 2));
//Only Header
$arr_values = array_values($rt);

$array_slice = array_slice($arr_values, 1);
echo "<pre>";
//print_r($array_slice);

$result_array  = array();
for($i=0;$i<count($array_slice);$i++)
{
    //echo $i;
    $result_array[] =  join(',',array_slice(explode(',', $array_slice[$i]), 2));

}

//print_r($result_array);
//$array_combined  = array_merge($header1,$result_array);
$token = array( 'Average', 'Max', 'Min');

foreach($result_array as $key=>$val)
{
    $res_arr[] = explode(",",$val);
}

$avArray = array();
$res_arr= array(
    0=>array(1,2,3,6,7,8,9,11,33,44,55,66,77,88,16,18),
    1=>array(17,52,38,666,79,8,9,15,33,44,55,66,76,88,16,18),
    2=>array(17,562,538,7666,579,688,9,15,933,44,55,660,76,808,106,108),
);
foreach ($res_arr as $k=>$subArray)
{
    foreach ($subArray as $id=>$value)
    {
        //print_r($id);

        $avArray[$id] += $value/count($res_arr); //Notice: Undefined offset: 3 

    }

}
$token = array( 'Average', 'Max', 'Min');
$num = $avArray;
$tc=16;
?>
<table border="1" style="border-collapse: collapse;">
    <thead>
        <tr>
            <th>Channels</th>
            <?php for($j=0;$j<=$tc-1;$j++):?>
            <th>CH<?= $j+1;?></th>
            <?php endfor;?>
        </tr>
    </thead>
    <tbody>
    <?php

    echo "<tr><td>Average</td>";
    for($i=0; $i<=$tc-1;$i++)
    {
        echo "<td>" .round($num[$i],2). "</td>";

    }

    echo "<tr><td>Max</td>";
    $arr_max = array();
    foreach($res_arr as $subArray)
    {
        foreach($subArray as $k=>$v) {
            $arr_max[$k][] = $v;
        }
    }
    $max_array  = array_map('max', $arr_max);


    for($i=0; $i<=$tc-1;$i++)
    {

        echo "<td>" .$max_array[$i]. "</td>";

    }

    echo "<tr><td>Min</td>";
    $arr_min = array();
    foreach($res_arr as $subArray)
    {
        foreach($subArray as $k=>$v1) {
            $arr_min[$k][] = $v1;
        }
    }
    $min_array  = array_map('min', $arr_min);

    for($g=0; $g<= $tc-1;$g++)
    {
        echo "<td>" .$min_array[$g]. "</td>";

    }

    ?>
    </tbody>
</table>
mysql\u connect(“本地主机”、“根目录”、“根目录”)或
die(“无法连接:”.mysql_error());
mysql_select_db(“db”);
$qry=mysql_查询(“从id=1的表中选择blob_字段”);
$arr=mysql\u fetch\u行($qry);
$rt=explode(“\n”,$arr[0]);
$header_arr1=分解(',',$rt[0]);
$header1=数组();
$channels=计数($header\u arr1)-2;
$header1[]=join(',',array_slice($header_arr1,2));
//唯一标题
$arr\u值=数组\u值($rt);
$array\u slice=array\u slice($arr\u值,1);
回声“;
//打印($array\u slice);
$result_array=array();
对于($i=0;$i$val)
{
$res_arr[]=爆炸(“,”,$val);
}
$avArray=array();
$res\u arr=数组(
0=>数组(1,2,3,6,7,8,9,11,33,44,55,66,77,88,16,18),
1=>数组(17,52,38666,79,8,9,15,33,44,55,66,76,88,16,18),
2=>阵列(17562538766579688,9,15933,44,55660,76808106108),
);
foreach($res_arr as$k=>$subArray)
{
foreach($id=>$value的子数组)
{
//打印(id美元);
$avArray[$id]+=$value/count($res_arr);//注意:未定义的偏移量:3
}
}
$token=数组('Average'、'Max'、'Min');
$num=$avArray;
$tc=16;
?>
渠道
中国

有关说明,请参阅内联注释


通知错误是什么?通知:未定义的偏移量:0正常运行。。。。。未定义的偏移量:15无法计算。。。。。。。。。。。。
$avArray = array();
$res_arr= array(
    0=>array(1,2,3,6,7,8,9,11,33,44,55,66,77,88,16,18),
    1=>array(17,52,38,666,79,8,9,15,33,44,55,66,76,88,16,18),
    2=>array(17,562,538,7666,579,688,9,15,933,44,55,660,76,808,106,108),
);
/*
foreach ($res_arr as $k=>$subArray){
    foreach ($subArray as $id=>$value){
        // this causes "Notice: Undefined offset: 0...15" because you can't add to an undeclared value
        $avArray[$id] += $value/count($res_arr);
    }
}
*/
$res_count=count($res_arr);  // declare this outside of the loop for efficiency
foreach ($res_arr as $k=>$subArray){
    foreach ($subArray as $id=>$value){
        if($k==0){
            $avArray[$id]=$value;  // declare first round of values
        }else{
            $avArray[$id]+=$value;  // add to existing values
            if($k==2){
                $avArray[$id]=$avArray[$id]/$res_count;  // only divide on the last iteration
            }
        }
    }
}
print_r($avArray);