@asgen

Почему не срабатывает доступ к элементу массива, когда в качестве ключа указана переменная?

Функция в приватном методе принимает аргумент $sort_type. Это строка, которая соответствует значению в массиве. Вот этот код работает как надо.
private function sort($array, $sort_type, $sort_direction)
    {
        function compare($a, $b) {

            return strnatcmp($a['name'], $b['name']);
        }


Но вот этот код - не работает, при том, что $sort_type === 'name'.
private function sort($array, $sort_type, $sort_direction)
    {
        function compare($a, $b) {

            return strnatcmp($a[$sort_type], $b[$sort_type]);
        }


Подскажите плиз, wtf?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
New_Horizons
@New_Horizons
function compare($a, $b) use($sort_type) {...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
anton_reut
@anton_reut
Начинающий веб-разработчик
Потому что не та область видимости и аргумент $sort_type просто не попадает во вторую вложенную функцию?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 100 000 руб.
Digital Clouds Новосибирск
от 60 000 руб.
АКМЭ сервис Санкт-Петербург
от 100 000 руб.
13 дек. 2019, в 03:35
1000 руб./за проект
13 дек. 2019, в 01:31
1000 руб./за проект