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



 

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

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


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

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


Добрый день!
У меня имеется такой массив:
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
Сообщений: 393
Регистрация: 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
Сообщений: 1416
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 621 раз
Репутация:   136  


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


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


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

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


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


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


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


Бывалый
****

Группа: User
Сообщений: 393
Регистрация: 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
Сообщений: 1928
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 558 раз
Репутация:   66  


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
Сообщений: 1416
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 621 раз
Репутация:   136  


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


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


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

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


(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
Сообщений: 393
Регистрация: 14.1.2011
Поблагодарили: 123 раза
Репутация:   31  


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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыНаписание скриптов на PHP, в т.ч. модулей для CMS, и другие услуги
Создание модулей и хаков для DLE и других движков, перенос контента
161 Coppermine 60800 24.7.2017, 18:28
автор: k1N
Открытая тема (нет новых ответов) Web программирование на С/С++/PHP/MySQL/SQL, высоконагруженные проекты
Есть наработки в области бирж трафика, топов, тизеров, видео cj-тубов
1 DFService 370 24.7.2017, 13:57
автор: DFService
Открытая тема (нет новых ответов) [предлагаю] Качественные услуги по PHP/HTML/CSS/JS, любые движки
Услуги программирования
27 Alexandr_js 8706 20.7.2017, 14:55
автор: Alexandr_js
Открытая тема (нет новых ответов) Вакансия. Программист PHP (Junior), удаленка фулл-тайм.
0 Vikktor123 256 20.7.2017, 11:06
автор: Vikktor123
Открытая тема (нет новых ответов) php(yii2) developer, ищу постоянную удаленную работу
10 Kumidzeke 1239 10.7.2017, 12:32
автор: Kumidzeke


 



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