@Nekrokilldozer

Как в массив для каждой тройки чисел добавить дополнительный ключ s, содержащий результат расчета площади трапеции со сторонами a и b, и высотой c?

В общем, есть у меня код:
<?php
 
$in = [1, 2, 3, 4, 5, 6];
$keys = ['a', 'b', 'c'];
$keysCnt = sizeof($keys);
$out = [];
foreach($in as $j => $val) {
   $key1 = floor($j / $keysCnt);
   $key2 = $j % $keysCnt;
   $out[$key1][$keys[$key2]] = $val;
}
print_r($out);
 
?>

Нужно было сделать:
$a – массив положительных чисел, количество элементов кратно 3. Результат ее выполнение: двумерный массив (массив состоящий из ассоциативных массива с ключами a, b, c). Пример для входных массива [1, 2, 3, 4, 5, 6] результат [[‘a’=>1,’b’=>2,’с’=>3],[‘a’=>4,’b’=>5 ,’c’=>6]].

На выходе у меня всё получилось. Я функцией это реализовал.
Как в этот массив, который получился на выходе, для каждой тройки чисел добавить дополнительный ключ s, содержащий результат расчета площади трапеции со сторонами a и b, и высотой c.
[[‘a’=>1,’b’=>2,’с’=>3],[‘a’=>4,’b’=>5 ,’c’=>6]]


Для меня оказалась тяжеловата задачка, может кто поможет?)
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
$in = [1, 2, 3, 4, 5, 6];

$chunks = array_chunk($in, 3); // разбиваем на куски по три

$result = array_map(foo, $chunks); // для каждого куска применяем функцию

function foo($chunk) {
    $chunk = array_combine(['a', 'b', 'c'], $chunk); // устанавливаем ключи
    $chunk['s'] = ($chunk['a'] + $chunk['b']) * $chunk['c'] / 2; // считаем и записываем площадь
    return $chunk;
};


https://ideone.com/wGhauZ
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
s = (a + b) * c / 2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы