在这个项目中,我有一个多维数组,它保存了一些雇员的姓名,职位,专业和工资。 我需要从数组中找到所有经理和所有员工的平均工资。
<!DOCTYPE html>
<html>
<head>
<meta sharset="UTF-8"/>
<title>Project3</title>
</head>
<body>
<?php
$employees = array(array("name" => "Nikolaou Nikolaos",
"occupation" => "Employee",
"salary" => 1500,
"specialty" => "Web Programmer"),
array("name" => "Papadopoulou Anna",
"occupation" => "Manager",
"salary" => 2300,
"specialty" => "Human resources management"),
array("name" => "Alexiou Nikoleta",
"occupation" => "Employee",
"salary" => 800,
"specialty" => "Secretary"),
);
//Start of the function that prints the arrays in a specific way.
function printTable($table)
{
foreach ($table as $employee => $list) {
// Print a heading:
echo "<h2 style=\"text-align:left; font-size:26px; font-family:times new roman; color:blue\">Employee #$employee</h2><ul>";
// Print each district data:
foreach ($list as $key => $value) {
echo "<li style=\"text-align:left; font-size:18px; font-family:times new roman; color:black\">$key: $value</li>\n";
}// End of nested FOREACH.
// Close the list:
echo '</ul>';
} // End of main FOREACH.
}// End of the function.
//function that calculates and returns the average salary of employees and managers separately.
function calcMeanAges($table, &$hmean, &$gmean)
{
$cEmployees = 0;
$sumsalary_e = 0;
$cManagers = 0;
$sumsalary_m = 0;
foreach ($table as $occupation =>$list) {
foreach ($list as $salary =>$value) {
if ($occupation == "Employee") {
$cEmployees++;
$sumsalary_e += $salary['salary'];
}
if ($occupation == "Manager") {
$cManagers++;
$sumsalary_m += $salary['salary'];
}
}
}
$hmean = $sumsalary_e / $cEmployees;
$gmean = $sumsalary_m / $cManagers;
}
//call of the function that calculates the average salaries.
calcMeanAges($employees, $h, $g);
echo "$h<br>";
echo "$g";
//Printing the elements of the arrays
echo '<p style="color:red;font-size:28px;font-family:times new roman;"><b>Employees and managers</b></p><br>';
printTable($employees);
?>
</body>
</html>
我需要分别计算员工和管理人员的平均工资。 所以我想到在foreach()
中放一个条件来检查谁是谁,然后对他们进行计数并保留他们工资的总和。 但它不能正常工作。 如果你能帮我的话我会很感激的。
基本上:
为了计算平均数,将所有不同的数字相加,然后将它们除以数字的总数。
所以这部分应该是对的。
请您从它们中检查每一个的数据类型:
$HMEAN=$SUMSALARY_E/$Cemployees; $GMEAN=$SUMSALARY_M/$CMANAGERS;
每个类型都应该是整数或int。
我看到了很多我想在你的代码中做不同的事情,但是我不知道你的上下文是什么。 在任何情况下,请查看您是否能够找到如何使用array_filter
,array_map
,array_sum
和count
来计算有问题的平均值,而无需显式循环。