Php 在关联数组中查找最大值

Php 在关联数组中查找最大值,php,arrays,associative-array,Php,Arrays,Associative Array,我想找出关联数组中的最大和。我有两年的信息,我已经找到了每年的金额,现在我想知道哪个金额更大,这个金额属于哪一年 <?php $year = array ( "Year 2015 " => array( "Televizor " => "3", "Lavatrice" => "4", "Kompjuter" => "5", "printer" => "5

我想找出关联数组中的最大和。我有两年的信息,我已经找到了每年的金额,现在我想知道哪个金额更大,这个金额属于哪一年

<?php
    $year = array (
    "Year 2015 " =>  array( 
        "Televizor " => "3",
        "Lavatrice"     => "4",
        "Kompjuter"     => "5",
        "printer"     => "5",
    ),
    "Year 2016 " =>  array( 
        "Televizor " => "3",
        "lavatrice"     => "7",
        "kompjuter"     => "4",
        "printer"     => "1",
    )
    );

    foreach($year as $key => $product){
        echo "<br>";
        echo "$key";
        echo"<table border=1 cellspacing=0>
            <tr>
            <td>Produkti</td>
            <td>Sasia</td>
            </tr>";
        echo "<br>";

        foreach( $product as $key => $value){
            echo "<tr>
                <td>$key</td>
                <td>$value</td>
                </tr>";
        }

        echo "</table>";
    }

    foreach($year as $key => $product){
        echo"$key";

        $arrayOfValues=array_values($product);
        $arraySum=array_sum($arrayOfValues);

        $avg=$arraySum/count($arrayOfValues);
        echo "Average=$avg";
        echo " ";

        $maxValueArray=array();
        array_push($maxValueArray, $arraySum);
        echo "Sum=$maxValueArray[0]";
        echo "<br>";
    }
?>

我想打印“2015年最大金额=17”

要做到这一点,您只需要创建一个带有估值的数组

$yearSumValues = array_map('array_sum', $year);

$max = max($yearSumValues);
$maxYearKey = array_search($max, $yearSumValues);

echo 'Max sum is: ', $max, '<br />';
echo 'Data key is: ', $maxYearKey, '<br />';

if( !is_null($maxYearKey) ) {
    echo 'Values are: ', var_dump($year[$maxYearKey]);
}
紧凑型

$yearSumValues = array_map('array_sum', $year);
if( ($maxYearKey = array_search(max($yearSumValues), $yearSumValues)) != null ) {
    echo 'found ', $maxYearKey, ' with values ', var_dump($year[$maxYearKey]);
}
你可以玩:


使用
array\u reduce
array\u sum
array\u search
功能的简短解决方案:

$result = array_reduce($year, function ($prev, $item) {
    return (array_sum($prev) > array_sum($item))? $prev : $item;
}, []);

print_r(array_search($result, $year) ." has the biggest sum = ". array_sum($result));
输出:

Year 2015  has the biggest sum = 17

这是典型的任务。将总和存储在变量中,并将新总和与之进行比较。如果新的总和更大,则替换变量值。它向我显示通知:未定义的偏移量:0在var_dump($year[$maxYearKey])行上;我刚开始使用php,如果您能帮助我找到2015年到2016年之间的常用键,以及哪一个键的数量最大,我将非常感激。请详细说明您的问题,
常用键
是什么意思?
哪个键的数量最大
是什么意思?
$result = array_reduce($year, function ($prev, $item) {
    return (array_sum($prev) > array_sum($item))? $prev : $item;
}, []);

print_r(array_search($result, $year) ." has the biggest sum = ". array_sum($result));
Year 2015  has the biggest sum = 17