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



 

Здравствуйте, гость ( Вход | Регистрация )

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


WordPress is my Life..
******

Группа: Active User
Сообщений: 1372
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 563 раза
Репутация:   127  


Добрый день!
У меня имеется такой массив:
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


Бывалый
****

Группа: User
Сообщений: 391
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


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


WordPress is my Life..
******

Группа: Active User
Сообщений: 1372
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 563 раза
Репутация:   127  


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


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


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3075
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2457 раз
Репутация:   273  


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


--------------------


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


Бывалый
****

Группа: User
Сообщений: 391
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


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

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


Новичок
*

Группа: User
Сообщений: 24
Регистрация: 20.6.2012
Из: Крым
Поблагодарили: 8 раз
Репутация:   3  


Еще как вариант - использовать 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


Старожил
******

Группа: Active User
Сообщений: 1632
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 467 раз
Репутация:   62  


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

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


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


WordPress is my Life..
******

Группа: Active User
Сообщений: 1372
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 563 раза
Репутация:   127  


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


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


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3075
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2457 раз
Репутация:   273  


(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


Бывалый
****

Группа: User
Сообщений: 391
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен программер php
Страницу надо на сайт
2 AlinaGreen 271 Вчера, 20:07
автор: ZaDrotom
Открытая тема (нет новых ответов) php(yii2) developer, ищу постоянную удаленную работу
0 Kumidzeke 297 5.12.2016, 23:13
автор: Kumidzeke
Открытая тема (нет новых ответов) Напишу интересные php скрипты
первые 5 заказов за пол цены
20 Ozim 3863 28.11.2016, 23:58
автор: wep
Открытая тема (нет новых ответов) Требуется: Адекватный PHP, JQuery программист
заказов много разных, постоянных, плюсом будет знание Bitrix, WP
0 Rambler 321 23.11.2016, 10:21
автор: Rambler
Открытая тема (нет новых ответов) Форма обратной связи на php: долго не приходят сообщения
3 giveaway 719 22.11.2016, 1:45
автор: WebAction


 



RSS Текстовая версия Сейчас: 9.12.2016, 1:59
Дизайн