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