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



 

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

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


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

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


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


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


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


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

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


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


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


Поблагодарили: (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
Сообщений: 1953
Регистрация: 21.9.2012
Из: СССР
Поблагодарили: 566 раз
Репутация:   67  


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


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


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


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

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


(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, JS, Wordpress). Весь мир. Удаленно. 700$ per month
2 Le0li 331 20.9.2017, 9:22
автор: WoWeb
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
10 qpPeW 1775 10.9.2017, 20:38
автор: Mike_Tyson
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыPHP код для og:image в Джумла
Нужен PHP код для заполнения мета тега meta property
0 Курыкин 464 8.9.2017, 7:41
автор: Курыкин
Открытая тема (нет новых ответов) php(yii2) developer, ищу постоянную удаленную работу
11 Kumidzeke 1548 3.9.2017, 15:50
автор: Kumidzeke
Открытая тема (нет новых ответов) Стабильный хостинг за 30р в месяц. GNU/Linux, PHP, MySQL, Perl, бэкапы. Помогу перенести сайт.
1 freeax 724 30.8.2017, 10:50
автор: Telnor


 



RSS Текстовая версия Сейчас: 25.9.2017, 17:11
Дизайн