На данный вопрос уже ответили:
Дали тестовое задание, php владею не плохо, но вот суть задания не понял. Может кто поможет и покажет.
ЗАДАНИЕ - написать функцию сортировки массива $TH, такую чтоб можно было на вход подать имя ключа и он по его значению отсортировал массив $TH
<?php
$m = array('a'=>'Honda','b'=>'Hummer','c'=>'BMW','d'=>'Toyota');
$s = array('a'=>'AH','b'=>'TU-144','c'=>'Boing','d'=>'СУ');
$t = array('a'=>'Тигр','b'=>'Пантера','c'=>'Т-34','d'=>'Волга');
$k = array('a'=>'Кузнецов','b'=>'Ямато','c'=>'Ясень','d'=>'Петропавловск');
$TH = array($m, $s, $t, $k);
//Т.Е. Было:
Array
(
[0] => Array
(
[a] => Honda
[b] => Hummer
[c] => BMW
[d] => Toyota
)
[1] => Array
(
[a] => AH
[b] => TU-144
[c] => Boing
[d] => СУ
)
[2] => Array
(
[a] => Тигр
[b] => Пантера
[c] => Т-34
[d] => Волга
)
[3] => Array
(
[a] => Кузнецов
[b] => Ямато
[c] => Ясень
[d] => Петропавловск
)
)
//Стало:
Array
(
[1] => Array
(
[a] => AH
[b] => TU-144
[c] => Boing
[d] => СУ
)
[0] => Array
(
[a] => Honda
[b] => Hummer
[c] => BMW
[d] => Toyota
)
[3] => Array
(
[a] => Кузнецов
[b] => Ямато
[c] => Ясень
[d] => Петропавловск
)
[2] => Array
(
[a] => Тигр
[b] => Пантера
[c] => Т-34
[d] => Волга
)
)
Вот пример реализации вашего вопроса с помощью метода usort:
<?php
$m = array('a'=>'Honda','b'=>'Hummer','c'=>'BMW','d'=>'Toyota');
$s = array('a'=>'AH','b'=>'TU-144','c'=>'Boing','d'=>'СУ');
$t = array('a'=>'Тигр','b'=>'Пантера','c'=>'Т-34','d'=>'Волга');
$k = array('a'=>'Кузнецов','b'=>'Ямато','c'=>'Ясень','d'=>'Петропавловск');
$TH = array($m, $s, $t, $k);
echo '<pre>';
print_r($TH);
function sort_arr($arr, $key){
uasort($arr, function ($a, $b) use ($key) {
if ($a[$key] == $b[$key]) return 0;
return ($a[$key] < $b[$key]) ? -1 : 1;
});
echo '<pre>';
print_r($arr);
}
sort_arr($TH, 'a');
sort_arr($TH, 'c');
?>
Подробно об этой строке uasort($arr, function ($a, $b) use ($key):
внутри callback функции не видны внешние переменные, их можно задать так use ($param1, $param2,...) что бы они были видны внутри функции .
И вот 2 вывода print_r сортированные первый параметром a, и второй параметром c.
Сортировка a:
Array
(
[0] => Array
(
[a] => AH
[b] => TU-144
[c] => Boing
[d] => СУ
)
[1] => Array
(
[a] => Honda
[b] => Hummer
[c] => BMW
[d] => Toyota
)
[2] => Array
(
[a] => Кузнецов
[b] => Ямато
[c] => Ясень
[d] => Петропавловск
)
[3] => Array
(
[a] => Тигр
[b] => Пантера
[c] => Т-34
[d] => Волга
)
)
Сортировка c:
Array
(
[0] => Array
(
[a] => Honda
[b] => Hummer
[c] => BMW
[d] => Toyota
)
[1] => Array
(
[a] => AH
[b] => TU-144
[c] => Boing
[d] => СУ
)
[2] => Array
(
[a] => Тигр
[b] => Пантера
[c] => Т-34
[d] => Волга
)
[3] => Array
(
[a] => Кузнецов
[b] => Ямато
[c] => Ясень
[d] => Петропавловск
)
)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости