Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как отсортировать массив по ключу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
cimes
Отправлено: 05 Февраля, 2010 - 16:33:47
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Как отсортировать массив по ключу DateR

Array (3)
0 => MysqRSOobj Object (2)
->Id = "1"
->DateR = "4444"
1 => MysqRSOobj Object (2)
->Id = "2"
->DateR = "2222"
2 => MysqRSOobj Object (2)
->Id = "3"
->DateR = "5555"
 
 Top
kochan10
Отправлено: 05 Февраля, 2010 - 16:41:05
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Простите, я не очень понял саму структуру массива, не могли бы вы расписать её по-подробнее.

Это многомерный массив?

(Отредактировано автором: 05 Февраля, 2010 - 16:43:00)

 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 16:47:21
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. [0] => stdClass Object ( [Id] => 13  [DateR] => 1265443201 )
  3. [1] => stdClass Object ( [Id] => 16  [DateR] => 1266566401 )
  4. )
  5.  
 
 Top
Ch_chov
Отправлено: 05 Февраля, 2010 - 16:48:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 16:56:46
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




[quote=Ch_chov][/quote]

спасибо, а поможете подрихтовать, а то не сортирует

PHP:
скопировать код в буфер обмена
  1.  
  2. function cmp($a, $b)
  3. {
  4.     if ($a['DateR'] == $b['DateR']) {
  5.         return 0;
  6.     }
  7.     return ($a['DateR'] < $b['DateR']) ? -1 : 1;
  8. }
  9.  
  10. uksort($af, "cmp");
  11.  
 
 Top
kochan10
Отправлено: 05 Февраля, 2010 - 16:58:05
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Я только недавно начал заниматься PHP, поэтому написал как смог, если правильно вас понял.
Сам код забыл)))
PHP:
скопировать код в буфер обмена
  1. $text=Array(
  2. 0 => array(
  3. Id => "1",
  4. DateR => "4444"),
  5. 1 => array(
  6. Id => "2",
  7. DateR => "2222"),
  8. 2 => array(
  9. Id => "3",
  10. DateR => "5555"));
  11. foreach($text as $key=>$val){
  12. $arr[$key]=$text[$key]['DateR'];}
  13. natsort($arr);
  14. foreach($arr as $key=>$val){
  15. $array[$key]=$text[$key];}

(Отредактировано автором: 05 Февраля, 2010 - 16:58:37)

 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 17:13:57
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




В том то и дело, что я не могу разобраться с самим массивом
он формируется так делается запрос в базу и выбока


while($row = $f->fetchrow()){
array_push($af, $row);
}
поэтому когда я применил ваш вариант, то вылетает ошибка
Fatal error: Cannot use object of type stdClass as array i
 
 Top
Ch_chov
Отправлено: 05 Февраля, 2010 - 17:39:52
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Попробуй вместо $a['DateR'] подставлять $a->DateR
 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 17:43:28
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Ch_chov пишет:
Попробуй вместо $a['DateR'] подставлять $a->DateR


Trying to get property of non-object in
 
 Top
Ch_chov
Отправлено: 05 Февраля, 2010 - 17:49:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Покажи целиком код
 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 18:00:24
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Ch_chov пишет:
Покажи целиком код



function cmp($a, $b)
{
if ($a->DateR == $b->DateR) {
return 0;
}
return ($a->DateR < $b->DateR) ? -1 : 1;
}

$sql = $GLOBALS['db']->Query("SELECT * FROM " . PREFIX . "_af WHERE period=1 ");
while($row = $sql->fetchrow())
{
array_push($af, $row);
}

uksort($af, "cmp");
 
 Top
Ch_chov
Отправлено: 05 Февраля, 2010 - 18:12:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




PHP:
скопировать код в буфер обмена
  1. function cmp($a, $b) {
  2.   global $af;
  3.   if ($af[$a]->DateR == $af[$a]->DateR) return 0;
  4.   return $af[$a]->DateR < $af[$a]->DateR? -1 : 1;
  5. }
  6. uksort($af, "cmp");

(Добавление)
Кстати, ORDER BY `DateR` не поможет?
И для чего это array_push($af, $row); ?
 
 Top
cimes
Отправлено: 05 Февраля, 2010 - 19:13:11
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




Ch_chov пишет:
PHP:
скопировать код в буфер обмена
  1. function cmp($a, $b) {
  2.   global $af;
  3.   if ($af[$a]->DateR == $af[$a]->DateR) return 0;
  4.   return $af[$a]->DateR < $af[$a]->DateR? -1 : 1;
  5. }
  6. uksort($af, "cmp");

(Добавление)
Кстати, ORDER BY `DateR` не поможет?
И для чего это array_push($af, $row); ?


Просто две выборки по разным условиям! И потом все в один массив, вот в нем то потом и надо отсортировать все по дате
 
 Top
kochan10
Отправлено: 05 Февраля, 2010 - 20:55:12
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Я так понимаю, мой код не работает...
(Добавление)
Мда... не работает((( я его как простой массив рассматривал, а это объекты.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB