【问题标题】:Making a dynamic valuation with foreach php使用 foreach php 进行动态估值
【发布时间】:2021-04-27 06:10:59
【问题描述】:

我想进行动态估值。所以想法是这样的:

  • 在我的数据库中,我的用户表包含“分数”。
  • 我的类别表包含字段“minScore”和“categoryName(bad, good, awesome)”
  • 最后我想得到这样的结果 categoryName=>howMuchUserBasedOnScore。

我是这样想的:

function valuation(){
$allScore = $this->db->select('score')->get('user')->result();
$category = $this->db->get('categori')->result();

$arrCategori = array();

foreach ($allScore as $value) {
  foreach($categori as $row){
    if($value->score <= $row->minScore){
      array_push($arrCategori, )
      //I don't know what should I do
    }
  }
}

}

谁能帮帮我?

编辑:

  • 现在我将 maxScore 添加到我的类别表字段中。

  • 我更改了 if 语句。变成了这个样子

    if($value->score <= $row->minScore && $value->score >= $row->maxScore){
        array_push($arrCategori, $arrCategori[$row->Categori] = $value->bsc );
      }
    
  • 我 var_dump 它。结果是我所期望的。现在的问题是,我如何计算有多少人很棒,坏人或好人

编辑:

  • 这是来自 $allscore 的 var_dump(为了简单起见,我将 bsc 更改为 score):

    array(11) { [0]=> object(stdClass)#42 (1) { ["bsc"]=> string(6) "100.00" } [1]=> object(stdClass)#43 (1) { ["bsc"]=> string(5) "40.00" } [2]=> object(stdClass)#44 (1) { ["bsc"]=> string(6) "100.00" } [3]=> object(stdClass)#45 (1) { ["bsc"]=> string(6) "100.00" } [4]=> object(stdClass)#46 (1) { ["bsc"]=> string(5) "40.00" } [5]=> object(stdClass)#47 (1) { ["bsc"]=> string(5) "40.00" } [6]=> object(stdClass)#48 (1) { ["bsc"]=> string(5) "40.00" } [7]=> object(stdClass)#49 (1) { ["bsc"]=> string(5) "40.00" } [8]=> object(stdClass)#50 (1) { ["bsc"]=> string(5) "40.00" } [9]=> object(stdClass)#51 (1) { ["bsc"]=> string(5) "60.00" } [10]=> object(stdClass)#52 (1) { ["bsc"]=> string(4) "0.00" } }
    
  • 来自 $category 的 var_dump (bxnak = maxScore, bxnaw = minScore)

    array(9) { [0]=> object(stdClass)#53 (4) { ["id"]=> string(1) "1" ["bxnaw"]=> string(1) "0" ["bxnak"]=> string(2) "25" ["kategori"]=> string(5) "GAGAL" } [1]=> object(stdClass)#54 (4) { ["id"]=> string(1) "2" ["bxnaw"]=> string(2) "26" ["bxnak"]=> string(2) "40" ["kategori"]=> string(16) "DALAM PENGAWASAN" } [2]=> object(stdClass)#55 (4) { ["id"]=> string(1) "3" ["bxnaw"]=> string(2) "41" ["bxnak"]=> string(2) "50" ["kategori"]=> string(18) "PERLU PENGEMBANGAN" } [3]=> object(stdClass)#56 (4) { ["id"]=> string(1) "4" ["bxnaw"]=> string(2) "51" ["bxnak"]=> string(2) "60" ["kategori"]=> string(5) "BURUK" } [4]=> object(stdClass)#57 (4) { ["id"]=> string(1) "5" ["bxnaw"]=> string(2) "61" ["bxnak"]=> string(2) "75" ["kategori"]=> string(11) "KURANG BAIK" } [5]=> object(stdClass)#58 (4) { ["id"]=> string(1) "6" ["bxnaw"]=> string(2) "76" ["bxnak"]=> string(2) "80" ["kategori"]=> string(10) "CUKUP BAIK" } [6]=> object(stdClass)#59 (4) { ["id"]=> string(1) "7" ["bxnaw"]=> string(2) "81" ["bxnak"]=> string(2) "90" ["kategori"]=> string(4) "BAIK" } [7]=> object(stdClass)#60 (4) { ["id"]=> string(1) "8" ["bxnaw"]=> string(2) "91" ["bxnak"]=> string(2) "99" ["kategori"]=> string(11) "SANGAT BAIK" } [8]=> object(stdClass)#61 (4) { ["id"]=> string(1) "9" ["bxnaw"]=> string(3) "100" ["bxnak"]=> string(4) "1000" ["kategori"]=> string(8) "ISTIMEWA" } }
    

【问题讨论】:

  • $arrCategori[$row] = $value-&gt;score ???
  • 我得到错误 array_push() 期望参数 1 是数组,给定 null
  • 你删除array_push($arrCategori, );了吗?
  • 不,我遵循了你的代码。我改了
  • 对不起我的错误,我删除了它,但我修复了它。现在错误变成非法偏移类型

标签: php foreach logic


【解决方案1】:

我终于做到了!

这是我的函数的最终代码

function valuation(){
$allBsc = $this->db->select('bsc')->get('kpi')->result();
$kategori = $this->db->get('kategori')->result();


$arrKategori = [];

foreach ($allBsc as $value) {
  foreach($kategori as $row){
    if($value->bsc <= $row->bxnak && $value->bsc >= $row->bxnaw){
      if(array_key_exists($row->kategori, $arrKategori)){
        array_push($arrKategori[$row->kategori], $value->bsc);
      }else{
        array_push($arrKategori, $arrKategori[$row->kategori] = array($value->bsc));
      }
    }
  }
}
var_dump(count($arrKategori));
die();

}

谢谢你,帮助我!

  • $allBsc = $score
  • $kategori = $category
  • $arrKategori = $allCategory

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多