PHP如何取二维数组中的某列的最大值和最小值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何取二维数组中的某列的最大值和最小值?相关的知识,希望对你有一定的参考价值。

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php,定义一个二维数组,以取第2列的最值为例。

2、在index.php中,输入代码:

$a = [
[11, 5, 24, 8, 3],
[3, 54, 78, 64, 9],
];
echo 'max=' . max($a[1]) . '<br/>';
echo 'min=' . min($a[1]);

3、浏览器运行index.php页面,此时发现第2列的最大值和最小值都被取出了。

参考技术A <?
$a = array(
array(3,1,2,5,4),
array(7,8,10,9,6),
array(15,12,14,13,11),
);

$b = $a;
for($i=0; $i<count($b); $i++)
sort($b[$i]);
echo '第'.$i.'列 最小数='.$b[$i][0].' 最大数='.$b[$i][count($b[$i])-1].'<br>';

?>本回答被提问者和网友采纳
参考技术B $topic_wrong = array(4)
[0] => array(4)
["id"] => string(2) "18"
["topic_id"] => string(3) "219"
["knowpoint_time"] => string(1) "0"
["moexam_time"] => string(1) "0"

[1] => array(4)
["id"] => string(2) "19"
["topic_id"] => string(3) "222"
["knowpoint_time"] => string(1) "0"
["moexam_time"] => string(1) "0"

[2] => array(4)
["id"] => string(2) "20"
["topic_id"] => string(3) "224"
["knowpoint_time"] => string(1) "0"
["moexam_time"] => string(1) "0"

[3] => array(4)
["id"] => string(2) "21"
["topic_id"] => string(3) "225"
["knowpoint_time"] => string(1) "0"
["moexam_time"] => string(1) "0"


//将数组根据topic_id逆序
array_multisort(array_column($topic_wrong,'topic_id'),SORT_DESC,$topic_wrong);
$max = $topic_wrong[0]['topic_id']
参考技术C <?
$arr = array(
array(3,1,2,5,4),
array(7,8,10,9,6),
array(15,12,14,13,11),
);
$b = array();
foreach($arr as $key=>$value)
$a=$arr[$key];
$b = array_merge($a,$b);
sort($b);

echo $b[0]."<p>".$b[count($b)-1];
参考技术D <?php
function arrMax($arr,$key,$v=true)
    $s = '';
    foreach($arr as $k)
        $s.= $k[$key].',';
    
    $s = substr($s,0,-1);
    $v = $v===false?'min':'max';
    eval('$v = '.$v.'('.$s.');');
    return $v;
//求二维数组最大值或最小值
$arr = array(
        '9'=>array(
                'name'=>'张三',
                'age'=>'30'
            ),
        '6'=>array(
                'name'=>'李四',
                 'age'=>'40'
            ),
        'title'=>array(
                'name'=>'王二',
                 'age'=>'10'
                )
        );
$max = arrMax($arr,'age');
$min = arrMax($arr,'age',false);
var_dump($max);
var_dump($min);
?>

聚合函数和分组查询(有宝藏)

 

聚合函数和分组查询的顺序语法

SELECT 字段1,字段2,...
FROM 表名
[WHERE 条件表达式
GROUP BY 字段 HAVING 条件表达式
ORDER BY 字段 ASC(升序) DESC (降序)
]

 函数名称

功能

 sum

返回选取的某列值的总和,总里程数

 max

返回选取的某列的最大值,最贵的票价

 min

返回选取的某列的最小值,最短里程

 avg

返回选取的某列的平均值,平均年龄

 count

返回选取的某列或记录的行数

 

SUM函数:select sum(miles) 线路总里程数 from line;

select sum(miles) 线路总里程数 from line where company=' 公交二公司 ';

max/min 获取所有线路里程的最大值和最小值:

select max(miles) 最长线路里程 , min(miles) 最短线路里程 from line;

avg(column) 用于返回数字型字段 column 的平均值,注意:列值为 null 的字段不参与运算。

select avg(miles) 平均里程数 from line;

count 函数用于统计记录行数。使用 count 函数时,必须指定一个列的名称或使用“*”。使用“*”可获取整张表的记录行数。注意:列值为 null 的字段不参与运算。

使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。group by 从英文字面的意义上可以理解为“根据(by)一定的规则进行分组(group)”,该子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。

group by 字段列表 [having 条件表达式 ]

出现上述查询逻辑错误的原因在于:lineNo 为非聚合函数列,但却不是分组列字段。所以, 当我们在使用 group by 子句进行分组查询时,出现在 select 子句中的非聚合函数列一定要出现在 group by 子句的分组字段列表当中

 

 

以上是关于PHP如何取二维数组中的某列的最大值和最小值?的主要内容,如果未能解决你的问题,请参考以下文章

vba中怎么选取二维数组中的某一行或某一列?

获取二维数组中某一列的最小值

求助:PHP如何判断二维数组哪些竖列的值相同?

c++输入一个5行5列的二维数组,求最大值和最小值其对应行列的位置。。

php 如何取二维数组中某个值,并组合成另一个一维数组进行implode

MySQL的聚合函数