За последние 24 часа нас посетили 22782 программиста и 1272 робота. Сейчас ищут 719 программистов ...

Помогите!!!Сделать без анонимных/замыкающих функций

Тема в разделе "Сделайте за меня", создана пользователем Shikka, 14 сен 2022.

  1. Shikka

    Shikka Новичок

    С нами с:
    14 сен 2022
    Сообщения:
    1
    Симпатии:
    0
    Помогите переделать код так что бы он был без анонимной/замыкающие функций
    <?php
    $data = [
    'authors' => [
    301 => [
    'id' => 301,
    'name' => 'Александр Сергеевич Пушкин',
    'email' => 'alexander_pushkin@example.com',
    'birthYear' => 1799,
    ],
    10 => [
    'id' => 10,
    'name' => 'Николай Васильевич Гоголь',
    'email' => 'nikolay_gogol@example.com',
    'birthYear' => 1809,
    ],
    17 => [
    'id' => 17,
    'name' => 'Михаил Юрьевич Лермонтов',
    'email' => 'mikhail_lermontov@example.com',
    'birthYear' => 1814,
    ],
    ],
    'books' => [
    [
    'title' => 'Евгений Онегин',
    'publishedAt' => '1823—1832',
    'author' => 301,
    ],
    [
    'title' => 'Полтава',
    'publishedAt' => '1828—1829',
    'author' => 301,
    ],
    [
    'title' => 'Мёртвые души',
    'publishedAt' => '1842',
    'author' => 10,
    ],
    [
    'title' => 'Сказка о рыбаке и рыбке',
    'publishedAt' => '1833',
    'author' => 301,

    ],
    ],
    ];



    echo '=== Авторы ===<br>';

    array_map(function($e){
    echo $e['name'],'-', $e['email'],'-', $e['birthYear'],'<br>';
    }, $data['authors']);

    echo '=== Книги ===<br>';

    array_map(function($e){
    echo $e['title'],'-', $e['publishedAt'],'-', $e['author'], '<br>';
    }, $data['books']);
     

    Вложения:

  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    А чем не устраивают анонимные функции? Это сейчас модно, молодёжно :)

    Сделай именованные, передай имя, замыкания у тебя и нету фактически

    PHP:
    1. function combineParameters($e) {
    2.    echo $e['name'],'-', $e['email'],'-', $e['birthYear'],'<br>';
    3. }
    4. array_walk($data["authors"], "combineParameters");
    Можно было и с array_map, но я не люблю, когда игнорится результат мапа