【问题标题】:How can I display the max value array, edited in a class如何显示在类中编辑的最大值数组
【发布时间】:2014-05-13 08:41:03
【问题描述】:

我需要在 PHP 中找到薪水最高的工人并只显示他(他的姓名、职位和薪水)。在 IF 语句中进行了几次尝试,但都没有达到我需要的结果。

class Workers {

    public $name;
    public $position;
    public $salary;

    private function Workers($name, $position, $salary){
        $this->name = $name;
        $this->position = $position;
        $this->salary = $salary;
    }

    public function newWorker($name, $position, $salary){
//      if (  ) {
            return new Workers($name, $position, $salary);
//      }
//      else return NULL;
    }

}

$arr = array();
$arr[] = Workers::newWorker("Peter", "work1", 600);
$arr[] = Workers::newWorker("John", "work2", 700);
$arr[] = Workers::newWorker("Hans", "work3", 550);
$arr[] = Workers::newWorker("Maria", "work4", 900);
$arr[] = Workers::newWorker("Jim", "work5", 1000);

print_r($arr);

这是我的代码,它会显示我创建的所有工人,但我只需要输出薪水最高的工人(工人 5 - 薪水为 1000 的吉姆)

【问题讨论】:

    标签: arrays function class max


    【解决方案1】:

    你可以用这个sn-p:

    $max = null;
    foreach ($arr as $worker) {
       $max = $max === null ? $worker : ($worker->salary > $max->salary ? $worker : $max);
    }
    

    或者这样,更清楚:

    $max = null;
    foreach ($arr as $worker) {
      if (!$max) {
         $max = $worker; 
      } elseif ($worker->salary > $max->salary) {
          $max = $worker; 
      } 
    }
    

    $max 现在包含一个具有最高薪水的工人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-27
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 2020-10-12
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多