- reset: documentation ( source)
- asort: documentation ( source)
<?php
function sortBy ( $arr, $sortKey )
{
/*Временный массив для сотритовки по нужному ключу*/
$tempArr = array();
/*Возвращаемый массив*/
$returnArr = array();
/*Перебор всего массива*/
foreach ( $arr AS $key=>$value )
{
/*Запись в массив значений ключа по которому быдет выполнена сортировка*/
$tempArr[$key] = $value[$sortKey];
}
/*Сортировка значений с сохранением ключей*/
asort ( $tempArr );
/*Установка указателя массива не первый элемент*/
reset ( $tempArr );
/*Перебор всего временного массива*/
foreach ( $tempArr AS $key=>$value )
{
/*Формирование возвращаемого массива*/
$returnArr[] = $arr[$key];
}
return $returnArr;
}
/*Ключ по которому будет выполнена сортировка*/
$sortKey = "name";
/*Второй ключ присутствующий в массиве*/
$secondKey = "data";
$arr[1]['data'] = "2010";
$arr[1]['name'] = "Петя";
$arr[2]['data'] = "2012";
$arr[2]['name'] = "Вася";
$arr[3]['data'] = "2011";
$arr[3]['name'] = "Саша";
$sortedArr = sortBy( $arr, $sortKey );
foreach ( $sortedArr AS $key=>$value )
{
echo $value[$sortKey] . " - " . $value[$secondKey] . "<br />";
}