X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Отсортировать массив php
andreykashops
andreykashops
Topic Starter сообщение 9.8.2013, 16:55; Ответить: andreykashops
Сообщение #1


Добрый день!
У меня имеется такой массив:
Array
(
    [0] = Array
        (
            [tid] = 3
            [fid] = 5
            [t] = Как мы отдыхали
            [c] = 4
        )
    [1] = Array
        (
            [tid] = 4
            [fid] = 32
            [t] = Вторая поездка на море
            [c] = 2
        )
    [2] = Array
        (
            [tid] = 5
            [fid] = 5
            [t] = Удачная покупка квартиры
            [c] = 5
        )
)

подскажите, как его отсортировать в порядке убывания по ключу [c] ?..

Сообщение отредактировал andreykashops - 9.8.2013, 16:57


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 9.8.2013, 17:16; Ответить: Pepper
Сообщение #2


function sort_callback($a, $b){
    return $a['c'] < $b['c'];
}

usort($arr, 'sort_callback');


Сообщение отредактировал Pepper - 9.8.2013, 17:16


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
Topic Starter сообщение 9.8.2013, 17:17; Ответить: andreykashops
Сообщение #3


Pepper, работает, большое спасибо!


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 9.8.2013, 17:59; Ответить: x64
Сообщение #4


а где же условие, если элементы равны?
при равенстве нужно возвращать ноль.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 9.8.2013, 18:15; Ответить: Pepper
Сообщение #5


Чтоб было "по учебнику":

function sort_callback($a, $b){
     if($a['c'] == $b['c']){
         return 0;
   }
   return ($a['c'] > $b['c']) ? -1 : 1;
}


Сообщение отредактировал Pepper - 9.8.2013, 18:15


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DonC
DonC
сообщение 11.8.2013, 22:43; Ответить: DonC
Сообщение #6


Еще как вариант - использовать array_multisort (позволяет сортировать сразу по нескольким ключам)
В данном случае:
CODE
foreach ($arr as $key => $row) {
$sort[$key] = $row['c'];
}
array_multisort($sort, SORT_DESC, $arr);


Сообщение отредактировал DonC - 11.8.2013, 22:43


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 13.8.2013, 11:05; Ответить: mmkulikov
Сообщение #7


andreykashops,
bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
Сортирует массив по ключам в обратном порядке, сохраняя отношения между ключами и значениями.

Сообщение отредактировал mmkulikov - 13.8.2013, 11:06


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
Topic Starter сообщение 13.8.2013, 20:03; Ответить: andreykashops
Сообщение #8


mmkulikov, я пробовал, но здесь только ключи первого уровня.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 13.8.2013, 21:42; Ответить: x64
Сообщение #9


(andreykashops @ 13.8.2013, 20:03) *
здесь только ключи первого уровня.

так что мешает использовать ключи 2 (3, 5, 10, ... уровней)?
if($a['c'] == $b['c']){
    if ($a['c']['a'] == $b['c']['a']) return 0;
    else returm $a['c']['a'] > $b['c']['a'] ? 1 : -1;
}


Сообщение отредактировал x64 - 13.8.2013, 21:43


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 13.8.2013, 21:46; Ответить: Pepper
Сообщение #10


x64, я думаю, он про krsort.


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3387 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1237 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44889 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1885 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3398 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 16.4.2024, 20:07
Дизайн