Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка многомерного ассоциативного массива, Сортировка по полю 
:(
    Опции темы
orenwd
Дата 22.3.2006, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.3.2006

Репутация: нет
Всего: нет



Как можно сортировать многомерный ассоциативный массив
($findresult[$i]['posit']) по значениям поля 'posit'?
Благодарю за ответы.
PM MAIL   Вверх
-=Ustas=-
Дата 22.3.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



ksort() пробовал?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
orenwd
Дата 22.3.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.3.2006

Репутация: нет
Всего: нет



По описанию данной функции вроде не подходит, перечитаю еще раз. Также необходимо учитывать что на самом деле массив ассоциат. и полностью вот такой:
$findresult[$i]['posit']['what'], а применение данной функции нарушит связи между 'posit' и 'what'.
PM MAIL   Вверх
-=Ustas=-
Дата 22.3.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(orenwd @ 22.3.2006, 11:52 Найти цитируемый пост)
а применение данной функции нарушит связи между 'posit' и 'what'.

Цитата

Сортирует массив по ключам, сохраняя корреляцию ключей и данных. Это используется в основном в ассоциативных массивах.



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
orenwd
Дата 22.3.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.3.2006

Репутация: нет
Всего: нет



Уточню вопрос. Имеем массив:
Array ( [0] => Array ( [posit] => 0.3 [link] => text1 ) [1] => Array ( [posit] => 4.1 [link] => text2) [2] => Array ( [posit] => 1.9 [link] => text3 )
Необходимо отсортировать его по ключу posit присутствующему в каждом подмассиве основного массива. Как это можно сделать?
PM MAIL   Вверх
Darhazer
Дата 22.3.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 7
Всего: 29



Код

<?
function cmp($a, $b)
{
   if ($a['posit'] == $b['posit']) {
       return 0;
   }
   return ($a['posit'] < $b['posit']) ? -1 : 1;
}

$arr =  Array (
 0 => Array ( 'posit' => 0.3,
             'link' => 'text1' ),
 1 => Array ( 'posit' => 4.1,
            'link' => 'text2'),
 2 => Array ( 'posit' => 1.9,  'link' => 'text3' )
 );
 print_r($arr);
 usort($arr, "cmp");
 print_r($arr);
 ?>



--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
EDuard
Дата 9.5.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



Аналогичная ситцация. 

Есть массив вида 

Array ( 
[news_title] => Array ( 
                                    [0] => news_title_1 
                                    [1] => news_title_2
                                    [2] => news_title_3
                                   )
 [id] => Array ( [0] => 4
                        [1] => 3
                        [2] => 2
                       )
[news_short] => Array ( [0] => news_1
                                       [1] => news_2
                                       [2] => news_3
                                      )
[news_date] => Array ( 
                                       [0] => 2007-05-11
                                       [1] => 2007-05-09
                                       [2] => 2007-05-10
                                      )
        ) 

Нужно отсортировать по полю news_date возможно ли это и если да, то как?
Большое спасибо!


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

PM MAIL WWW ICQ   Вверх
SelenIT
Дата 9.5.2007, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



EDuard, для Вашего случая, по-моему, идеально подходит array_multisort.

Хотя есть подозрение, что можно отсортировать Ваши новости еще на этапе формирования этого массива. Откуда эти новости берутся, не из БД сдучайно?

Это сообщение отредактировал(а) SelenIT - 9.5.2007, 23:07


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
EDuard
Дата 13.5.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: нет
Всего: 7



SelenIT, можешь привести пример с array_multisort? 



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

PM MAIL WWW ICQ   Вверх
Alex_B
Дата 15.5.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



А вот еще вопрос на эту тему/
Есть двумерный хеш массив:

Код

$prodact = array(
        "srt1"    => array("NAME"=>"name1", "PRICE" =>13),
        "srt2"    => array("NAME"=>"name2", "PRICE" =>13),
        "srt3"    => array("NAME"=>"name3", "PRICE" => 60),
    );


Каким образом можно в массиве вывести для каждого ключа srt1, srt2 и т.д. определнные значение ключей вложенных массивов, например ключа PRICE.

Как, хотябы примерно, будет выглядеть функция которая в качестве параметра получает ключ srt1(или srt2, или srt3) а возвращает ассоциативный этому ключу массив.
Т.е. фунглядит как-то так:

Код

function GetValues(key)
{
    ...
    return sechArray;    
}


А использовать её, можно вот так:
 
Код

$a =  function GetValues('str1');
echo $a["PRICE"];


Спасибо.
PM MAIL   Вверх
SelenIT
Дата 15.5.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Alex_B, а просто $prodact['str1']["PRICE"] разве не подходит?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Alex_B
Дата 15.5.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: нет
Всего: 1



SelenIT, спасибо, я плохо высказался.
Нужно было перебрать все PRICE, для этого сдела так:

Код

foreach($prodact as $arItem){
    echo $arItem["PRICE"];
}


Это сообщение отредактировал(а) Alex_B - 15.5.2007, 16:35
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0672 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.