Расчет с использованием значений массива в PHP - PullRequest
0 голосов
/ 21 сентября 2018

Если у меня есть многомерный массив, как я могу сделать так, чтобы определенные группы в массиве (например: 'wages', 'hrs') были вставлены в определенную формулу, чтобы стать $ x, чтобы он мог идтичерез заявление ifelse ниже?

Я рассчитываю месячную зарплату с помощью этой общей функции: ($employees[0]['wage']) * ($employees[0]['hrs']) * 4 Однако я хочу знать, как отформатировать первую скобку (ключ?) $employees[ _ ], чтобы каждое значение массива под символом 'Значения hrs 'и' wage 'используются для расчета того, что будет $ x для КАЖДОГО сотрудника в массиве (их 9).Я предполагаю, что я создал бы цикл, но как бы я заполнил скобку, чтобы это произошло?

 with monthly salary = ($employees[_]['wage']) * ($employees[_]['hrs']) * 4
 where $employees is a pre-set multidimensional array I created.

<?php 

   $x = __

    if ( $x >= 3000 ) { 
      echo "High paying"; 
     } elseif ( 2000 =< x =< 2999 ) {
        echo "Good paying";
     } else {
      echo "Low paying"; 
     } 
?>  

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Предполагается, что у вас есть $employees многомерный массив;ниже приведен код, который дает вам зарплату и ее масштаб, если он высокий, низкий или хороший.

Вот код;

/**
 * Function to calculate salary scale is high, good, low
 * @param int $salary
 * @return string
 */
function calculateSalaryScale($salary) {
    if ($salary >= 3000) {
        $scale = "High paying";
    } else if (2000 <= $salary && $salary <= 2999 ) {
        $scale = "Good paying";
    } else {
        $scale = "Low paying";
    }

    return $scale;
}

// Assuming your employyees array is like below
$employees = array(
    array('emp_id' => 1, 'name' => 'John Doe', 'wage' => 90, 'hrs'=> 8),
    array('emp_id' => 2, 'name' => 'Lorem Ipsum', 'wage' => 150, 'hrs'=> 6),
    array('emp_id' => 3, 'name' => 'Doler amit', 'wage' => 50, 'hrs'=> 10),
);

foreach ($employees as &$employee) {
    $employee['salary'] = $employee['wage'] * $employee['hrs'] * 4;
    $employee['scale'] = calculateSalaryScale($employee['salary']);
}

echo "<pre>";
print_r($employees);
exit;

Это даст вам вывод ниже;

Array
(
    [0] => Array
        (
            [emp_id] => 1
            [name] => John Doe
            [wage] => 90
            [hrs] => 8
            [salary] => 2880
            [scale] => Good paying
        )

    [1] => Array
        (
            [emp_id] => 2
            [name] => Lorem Ipsum
            [wage] => 150
            [hrs] => 6
            [salary] => 3600
            [scale] => High paying
        )

    [2] => Array
        (
            [emp_id] => 3
            [name] => Doler amit
            [wage] => 50
            [hrs] => 10
            [salary] => 2000
            [scale] => Good paying
        )

)

Затем вы можете продолжить работу с массивом $employees соответственно.

0 голосов
/ 21 сентября 2018

Я думаю, вы просто хотите, чтобы цикл foreach проходил через каждого из сотрудников в вашем массиве $employees:

foreach ($employees as $employee) {
    $x = $employee['wage'] * $employee['hrs']) * 4;
    if ( $x >= 3000 ) { 
        echo "High paying"; 
    } elseif ( 2000 =< x =< 2999 ) {
        echo "Good paying";
    } else {
        echo "Low paying"; 
    } 
}
0 голосов
/ 21 сентября 2018

Вы должны использовать это

 $x = array();

for($i=0;$i<count($x);$i++)
{
    if ( $x[$i] >= 3000 ) 
    { 
      echo "High paying"; 
    } 
    elseif ( 2000 >= $x[$i] <= 2999 ) 
    {
       echo "Good paying";
    } 
    else 
    {
      echo "Low paying"; 
     } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...