sofiyavv06
Новичок
Есть рабочий код, но преподаватель считает, что это можно сделать легче: "слишком сложно перемешиваете массив, там нужно просто сделать shuffle($result3['books']);
И лучше алгоритм работы делать так:
printBooks
shuffle
printBooks
Так код будет более прозрачным и понятным, вообще добавление в функции параметра, который меняет логику функции не самая хорошая идея"
как должен выглядеть код согласно правкам? заранее спасибо
И лучше алгоритм работы делать так:
printBooks
shuffle
printBooks
Так код будет более прозрачным и понятным, вообще добавление в функции параметра, который меняет логику функции не самая хорошая идея"
как должен выглядеть код согласно правкам? заранее спасибо
PHP:
<pre
<?php
$result3 = [
'The old man and the sea' => [
'fio' => 'Ernst Hemingway',
'email' => '[email protected]',
'birthYear' => '1899',
],
'La Nausée' => [
'fio' => 'Jean Paul Sartre',
'email' => '[email protected]',
'birthYear' => '1905',
],
'The Moonstone' => [
'fio' => 'Wilkie Collins',
'email' => '[email protected]',
'birthYear' => '1824',
]
];
printBook($result3);
echo '<hr>';
printBook($result3, true);
function printBook(array $result3, bool $shuffle = false): void
{
! $shuffle ?: $result3 = shuffleAssoc($result3);
foreach ($result3 as $book => $data) {
echo "Book <b>$book</b>, was written by <b>{$data['fio']}</b> <b>{$data['birthYear']}</b> (<b>{$data['email']}</b>)<br>";
}
}
function shuffleAssoc(array $result3): array
{
$keys = array_keys($result3);
shuffle($keys);
return array_merge(array_flip($keys), $result3);
}