Сallback (анонимные) функции

119
25 июня 2021, 00:00

Решаю задачку

Сallback (анонимные) функции Для всех заданий:

  • использовать array_filter или array_map;

  • на входе для всех заданий, дан массив:

    [
        ['name' => 'Yan'   , 'salery' => '1200', 'work_hours' => 180], 
        ['name' => 'Barda' , 'salery' => '2150', 'work_hours' => 160], 
        ['name' => 'Piter' , 'salery' => '1500', 'work_hours' => 160], 
        ['name' => 'Alex'  , 'salery' => '3340', 'work_hours' => 167], 
        ['name' => 'Deiv'  , 'salery' => '1700', 'work_hours' => 176], 
        ['name' => 'Bob'   , 'salery' => '1150', 'work_hours' => 182], 
        ['name' => 'Claus' , 'salery' => '2810', 'work_hours' => 155], 
        ['name' => 'Lina'  , 'salery' => '1600', 'work_hours' => 169], 
        ['name' => 'Rod'   , 'salery' => '2780', 'work_hours' => 191], 
        ['name' => 'Kristy', 'salery' => '2180', 'work_hours' => 144], 
        ['name' => 'Ron'   , 'salery' => '1670', 'work_hours' => 157], 
    ]
  • выводить результирующий массив в табличном виде для каждого задания.

1) Всем сотрудникам у кого ЗП меньше 1600 добавить 100.

2) Всем сотрудникам кто работал больше 180 часов, добавить премию 20%.

3) Вывести всех сотрудников которые отработали меньше 160 часов.

4) Вывести всех сотрудников у которых ЗП меньше 2000.

Решил так:

<?php 
$arr = [
    ['name' => 'Yan'   , 'salery' => '1200', 'work_hours' => 180], 
    ['name' => 'Barda' , 'salery' => '2150', 'work_hours' => 160], 
    ['name' => 'Piter' , 'salery' => '1500', 'work_hours' => 160], 
    ['name' => 'Alex'  , 'salery' => '3340', 'work_hours' => 167], 
    ['name' => 'Deiv'  , 'salery' => '1700', 'work_hours' => 176], 
    ['name' => 'Bob'   , 'salery' => '1150', 'work_hours' => 182], 
    ['name' => 'Claus' , 'salery' => '2810', 'work_hours' => 155], 
    ['name' => 'Lina'  , 'salery' => '1600', 'work_hours' => 169], 
    ['name' => 'Rod'   , 'salery' => '2780', 'work_hours' => 191], 
    ['name' => 'Kristy', 'salery' => '2180', 'work_hours' => 144], 
    ['name' => 'Ron'   , 'salery' => '1670', 'work_hours' => 157], 
];

// задание 1
echo '<br>Всем сотрудникам у кого ЗП меньше 1600 добавить 100';
$salery = array_map( 
        function($salery) { 
        if ($salery['salery'] < 1600) {
            echo '<table border=1px width=200px>';
            echo '<tr>';
            echo '<td width=100px>' . $salery['name'] . '</td>'; 
            $bonus = $salery['salery'] + 100;
            echo '<td width=100px>' . $bonus . '</td>'; 
            echo '</tr>';
            echo '<table>';
        }
        }, 
        $arr 
); 
print_r($salery); 
// задание 2
echo '<br>Сотрудники которые отработали больше 180 часов добавили премии 20 %';
$work_hours = array_map( 
        function($work_hours) { 
        if ($work_hours['work_hours'] > 180) {
            echo '<table border=1px width=200px>';
            echo '<tr>';
            echo '<td width=100px>' . $work_hours['name'] . '</td>'; 
            echo '<td width=100px>' . $work_hours['salery'] * 1.2 . '</td>'; 
            echo '</tr>';
            echo '<table>';
        }
        }, 
        $arr 
); 
print_r($work_hours); 
// задание 3
echo '<br>Сотрудники которые отработали меньше 160 часов';
$work_hours2 = array_map( 
        function($work_hours2) { 
        if ($work_hours2['work_hours'] < 160) {
            echo '<table border=1px width=200px>';
            echo '<tr>';
            echo '<td width=100px>' . $work_hours2['name'] . '</td>'; 
            echo '<td width=100px>' . $work_hours2['work_hours'] . '</td>'; 
            echo '</tr>';
            echo '<table>';
        }
        }, 
        $arr 
); 
print_r($work_hours2); 
// задание 4
echo '<br>Сотрудники с зп меньше 2000';
$salery2 = array_map( 
        function($salery2) { 
        if ($salery2['salery'] < 2000) {
            echo '<table border=1px width=200px>';
            echo '<tr>';
            echo '<td width=100px>' . $salery2['name'] . '</td>'; 
            echo '<td width=100px>' . $salery2['salery'] . '</td>'; 
            echo '</tr>';
            echo '<table>';
        }
        }, 
        $arr 
); 
print_r($salery2); 

И подскажите, как избавиться от этого:

READ ALSO
Задача с функциями php

Задача с функциями php

Сразу прошу прощение если вопрос покажется глупымТолько изучаю php, не судите строго :)

79
как проверить наличие значения, в результирующем запросе&hellip;?

как проверить наличие значения, в результирующем запросе…?

Прошу подскажите, как проверить содержится ли в массиве определенное значение, к примеру $name, которое по http сюда подаем?

101
Помогите с cURL запросом к vk.com

Помогите с cURL запросом к vk.com

Всем привет, прошу помощи с cURL запросом к странице vkcom

83
Вывод таблицы БД через сервлет

Вывод таблицы БД через сервлет

Имеется класс сервлета(указанный в webxml), задача которого - вывести таблицу из БД

114