@alysenko

Как сортировать массив в Yii2 c использованием ArrayHelper?

Есть массив.

$array = [
  [
    'name' => 'name1',
    'status' => 1,
    'year' => 21
  ],
  [
    'name' => 'name2',
    'status' => 0,
  ],
  [
    'name' => 'name3',
    'status' => 0,
  ],
  [
    'name' => 'name4',
    'status' => 0,
    'year' => 30
  ],
  [
    'name' => 'name5',
    'status' => 0,
    'year' => 25
  ],
]


Задача. Нужно средствами ArrayHelper в Yii2 отсортировать этот массив по "year" (как по возрастанию, так и по убыванию) таким образом, чтобы:
  • пользователь со статусом 1 всегда был первым
  • пользователи у которых нет ключа "year" были последними.

То есть должно получиться так.
По возрастанию:
$array = [
  [
    'name' => 'name1',
    'status' => 1,
    'year' => 21
  ],
  [
    'name' => 'name5',
    'status' => 0,
    'year' => 25
  ],
  [
    'name' => 'name4',
    'status' => 0,
    'year' => 30
  ],
  [
    'name' => 'name2',
    'status' => 0,
  ],
  [
    'name' => 'name3',
    'status' => 0,
  ],
]

По убыванию:
$array = [
  [
    'name' => 'name1',
    'status' => 1,
    'year' => 21
  ],
  [
    'name' => 'name4',
    'status' => 0,
    'year' => 30
  ],
  [
    'name' => 'name5',
    'status' => 0,
    'year' => 25
  ],
  [
    'name' => 'name2',
    'status' => 0,
  ],
  [
    'name' => 'name3',
    'status' => 0,
  ],
]
  • Вопрос задан
  • 1779 просмотров
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Все есть в документации:
www.yiiframework.com/doc-2.0/yii-helpers-arrayhelp...
Лень читать?
Ответ написан
Ваш ответ на вопрос

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

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