Решаю задачку
С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);
И подскажите, как избавиться от этого:
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Сразу прошу прощение если вопрос покажется глупымТолько изучаю php, не судите строго :)
Прошу подскажите, как проверить содержится ли в массиве определенное значение, к примеру $name, которое по http сюда подаем?
Имеется класс сервлета(указанный в webxml), задача которого - вывести таблицу из БД