[英]PHP array search and manipulation
<?php
include 'database.php';
$sql="SELECT `j_company`,`j_salary`,`j_title` FROM `jobs`";
$query=mysqli_query($conn, $sql);
if(!$query)
{
echo "<h1>Unsuccessful</h1>";
echo("Error description: " . mysqli_error($conn));
}
$arr=array();
while ($fetch=mysqli_fetch_assoc($query))
{
$arr[]=$fetch;
}
?>
如上所述,我從“工作”表中檢索j_company,j_title,j_salary。
之后,我需要搜索每個公司的數組arr [],以查找所有職位(j_title),如果有多個相同的j_title-查找相同j_title下的薪水平均值,並可能存儲j_company,數組中的j_title,j_salary(每個相同職位的平均值)。
ex-
company1 title1 $1000
company1 title1 $1500
company2 title2 $2000
company2 title3 $2500
company3 title3 $3000
company3 title3 $2500
output -
company1 title1 $1250
company2 title2 $2000
company2 title3 $2500
company3 title3 $2750
試試這個簡單的foreach
$reuslSetArray = array();
if (!is_null($arr)) {
foreach ($arr as $key => $mainArray) {
$reuslSetArray[$mainArray['j_company'] . '_' . $mainArray['j_title']][] = $mainArray['j_salary'];
}
}
if (!is_null($reuslSetArray)) {
foreach ($reuslSetArray as $key => $resultArray) {
$labels = explode("_", $key);
$value = array_sum($resultArray) / count($resultArray);
echo $labels[0] . ' ' . $labels[1] . ' ' . $value . " <br>";
}
}
如果您不需要使用每一行,則可以通過SQL完成所有操作:
SELECT j_company,j_title,COUNT(*) as c, SUM(j_salary) as s FROM table GROUP BY j_company, j_title
查詢結果在$row
,
$avg = $row['s'] / $row['c'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.