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]   

> Описание: Подскажите...
Maxi
Отправлено: 08 Апреля, 2013 - 17:02:21
Post Id



Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010  
Откуда: Kharkov, Ukraine


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




Сделал массив объектов, теперь мне его нужно отсортировать, и при выводе каждого вывести краткую информацию...
Вопрос...

Как обращаться с массивом объектов?...

Я сейчас хочу создать общий класс для этого массива, и в нём описать метод сортировки и вывод сообщения... Массив объектов передам в конструктор сразу, а чё дальше?...
 
 Top
EuGen Администратор
Отправлено: 08 Апреля, 2013 - 17:04:38
Post Id


Профессионал


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


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




Можете воспользоваться, например, функциями для сортировки с использованием обратного вызова, таких, как usort или uasort
В качестве примера:
PHP:
скопировать код в буфер обмена
  1. $rgData=array(
  2. (object)(array('a'=>1, 'b'=>'bar')),
  3. (object)(array('d'=>true, 'a'=>0, 'b'=>3)),
  4. (object)(array('b'=>'foo')),
  5. );
  6. $sOrderField = 'b';
  7. usort($rgData, function($mLeft, $mRight) use ($sOrderField)
  8. {
  9.    return strcasecmp($mLeft->$sOrderField, $mRight->$sOrderField);
  10. });
  11. //var_dump($rgData);


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Maxi
Отправлено: 08 Апреля, 2013 - 17:10:25
Post Id



Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010  
Откуда: Kharkov, Ukraine


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




EuGen пишет:
Можете воспользоваться, например, функциями для сортировки с использованием обратного вызова, таких, как usort или uasort
В качестве примера:
PHP:
скопировать код в буфер обмена
  1. $rgData=array(
  2. (object)(array('a'=>1, 'b'=>'bar')),
  3. (object)(array('d'=>true, 'a'=>0, 'b'=>3)),
  4. (object)(array('b'=>'foo')),
  5. );
  6. $sOrderField = 'b';
  7. usort($rgData, function($mLeft, $mRight) use ($sOrderField)
  8. {
  9.    return strcasecmp($mLeft->$sOrderField, $mRight->$sOrderField);
  10. });
  11. //var_dump($rgData);



О! Спасибо! Буду пробовать!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB