Статьи
/**
* Сортирует двумерный ассоциативный массив, по структуре похожий на таблицу БД.
* Сортировка происходит по заданному ключу, подобно тому, как это делается в БД через ORDER BY key, type
*
* @param array $array
* @param string $key ключ, по которому сортировать
* @param int $type порядок сортировки {SORT_ASC|SORT_DESC}
* @param string $cmp_func функция для сравнения строк, одна из:
* strcmp, strcasecmp - обычное сравнение строк
* strnatcmp, strnatcasecmp - алгоритм "естественного упорядочения"
* @return array
*
* @author Nasibullin Rinat <rin at starlink ru>
* @charset ANSI
* @version 1.0.2
$a = array(
array('id' => 4, 'name' => 'Sveta', 'sex' => 'female'),
array('id' => 1, 'name' => 'Rin', 'sex' => 'male'),
array('id' => 3, 'name' => 'Vika', 'sex' => 'female'),
array('id' => 2, 'name' => 'Igor', 'sex' => 'male'),
);
echo '<pre>';
print_r(array_multisort_key($a, 'id', SORT_ASC));
print_r(array_multisort_key($a, 'id', SORT_DESC));
print_r(array_multisort_key($a, 'name', SORT_ASC));
echo '</pre>';
*/
function array_multisort_key($array, $key, $type = SORT_ASC, $cmp_func = 'strcmp')
{
$GLOBALS['ARRAY_MULTISORT_KEY_SORT_KEY'] = $key;
usort($array, create_function('$a, $b', '$k = &$GLOBALS["ARRAY_MULTISORT_KEY_SORT_KEY"];
return ' . $cmp_func . '($a[$k], $b[$k]) * ' . ($type == SORT_ASC ? 1 : -1) . ';'));
return $array;
}
* Сортирует двумерный ассоциативный массив, по структуре похожий на таблицу БД.
* Сортировка происходит по заданному ключу, подобно тому, как это делается в БД через ORDER BY key, type
*
* @param array $array
* @param string $key ключ, по которому сортировать
* @param int $type порядок сортировки {SORT_ASC|SORT_DESC}
* @param string $cmp_func функция для сравнения строк, одна из:
* strcmp, strcasecmp - обычное сравнение строк
* strnatcmp, strnatcasecmp - алгоритм "естественного упорядочения"
* @return array
*
* @author Nasibullin Rinat <rin at starlink ru>
* @charset ANSI
* @version 1.0.2
$a = array(
array('id' => 4, 'name' => 'Sveta', 'sex' => 'female'),
array('id' => 1, 'name' => 'Rin', 'sex' => 'male'),
array('id' => 3, 'name' => 'Vika', 'sex' => 'female'),
array('id' => 2, 'name' => 'Igor', 'sex' => 'male'),
);
echo '<pre>';
print_r(array_multisort_key($a, 'id', SORT_ASC));
print_r(array_multisort_key($a, 'id', SORT_DESC));
print_r(array_multisort_key($a, 'name', SORT_ASC));
echo '</pre>';
*/
function array_multisort_key($array, $key, $type = SORT_ASC, $cmp_func = 'strcmp')
{
$GLOBALS['ARRAY_MULTISORT_KEY_SORT_KEY'] = $key;
usort($array, create_function('$a, $b', '$k = &$GLOBALS["ARRAY_MULTISORT_KEY_SORT_KEY"];
return ' . $cmp_func . '($a[$k], $b[$k]) * ' . ($type == SORT_ASC ? 1 : -1) . ';'));
return $array;
}
Облако тегов
Последние комментарии
Наши клиенты
Контакты
ООО "Парнас"
420111
г. Казань, ул. Пушкина 18
Телефон :
8-843-236-6001
8-499-550-6001
Почта :
mail@parnas-it.com