@venomphp

Как сортировать массив?

Не получается сотртировать массив по его значению, массив такой
array (
  0 => 
  array (
    'ID' => '1',
    'NAME' => '3131',
    'LAST_NAME' => '132',
    'SECOND_NAME' => '',
    'STATUS_WORK_DAY' => 'CLOSED',
  ),
  1 => 
  array (
    'ID' => '4',
    'NAME' => 'Павел',
    'LAST_NAME' => 'Иванов',
    'SECOND_NAME' => '',
    'STATUS_WORK_DAY' => 'CLOSED',
  ),
  2 => 
  array (
    'ID' => '5',
    'NAME' => 'Иван',
    'LAST_NAME' => 'Иванов',
    'SECOND_NAME' => 'Иванович',
    'STATUS_WORK_DAY' => 'CLOSED',
  ),
3 => 
  array (
    'ID' => '17',
    'NAME' => 'Автобус',
    'LAST_NAME' => 'Иванов',
    'SECOND_NAME' => 'Иванович',
    'STATUS_WORK_DAY' => 'OPENED',
  ),

я хочу что бы вначале у меня были элементы с STATUS_WORK_DAY => OPENED, а все остальные с closed, пытался вот так
$usersWithOpenedDay = [];
        foreach ($arAllUsers as $userId => $valueUserId) {
            $userTimeMan = new \CTimeManUser($valueUserId['ID']);
            $userSettings = $userTimeMan->GetSettings();
            $status = $userTimeMan->State();
            if ($userSettings['UF_TIMEMAN']) {
                $valueUserId += ['STATUS_WORK_DAY' => $status];
            }
            $usersWithOpenedDay[] = usort($valueUserId, function($a, $b) {
                if ($a['STATUS_WORK_DAY'] == 'OPENED') {
                    return 0;
                }
            });
        }

но в массив $usersWithOpenedDay попадают элементы с значением true и всё прошлые значения удалились
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 2
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Банальный usort
usort($arr, fn($a, $b)=>$b['STATUS_WORK_DAY']<=>$a['STATUS_WORK_DAY']);


https://phpize.online/sql/mysql57/undefined/php/ph...
Ответ написан
Вы смешали наполнение массива и сортировку. Не надо так. Сначала заполняете массив, а потом сортируете.

* я знаю про всякие олимпиадные задачки, но это не тот случай
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
06 мая 2024, в 10:17
15000 руб./за проект
06 мая 2024, в 10:02
3000 руб./за проект