За последние 24 часа нас посетили 20695 программистов и 1713 роботов. Сейчас ищут 1418 программистов ...

Как сортировать модули список требовании

Тема в разделе "PHP для новичков", создана пользователем NoMonster, 16 дек 2016.

  1. NoMonster

    NoMonster Новичок

    С нами с:
    7 май 2016
    Сообщения:
    38
    Симпатии:
    1
    У каждой модули есть список требовании подключении модули.
    Например чат требует модуль комментарии и пользователь. Поэтому чат станет 3 очередь. Но проблема том что я его пробовал, но сортирует не правильно!


    PHP:
    1. usort($components, function (\Component $a, \Component $b) {
    2.             $dependencies = $a['info']['dependencies'] ?? [];
    3.             return (in_array($b->getName(), $dependencies)) ? 1 : 0;
    4.         });
    Навзание: Требование
    chat: ['comment']
    comment ['user']
    user ['system']
    system

    Результат:
    system
    comment
    chat
    user

    Не правильно.
    коммент должен после пользователя. Но почему так вышло?
     
  2. valentinnew

    valentinnew Активный пользователь

    С нами с:
    30 янв 2011
    Сообщения:
    160
    Симпатии:
    35
    так а зачем тебе сортировка?
    сделай просто - подключаешь нужный модуль - он смотрит зависимости.
    Если зависимость уже подключена, то переходишь к следующей по списку, если нет, то подключаешь рекурсивно и переходишь к следующей.