Вот мой масив ( на самом деле строчек около 200)
Array
(
[0] => stdClass Object
(
[id] => 1185
[title] => Вопросы образования и воспитания
[created] => 2011-03-29 18:28:39
)
[1] => stdClass Object
(
[id] => 2069
[title] => Образование в эпоху Интернет
[created] => 2011-02-15 22:21:41
)
)
Может у меня не работает, так как у меня внутри не Array, а stdClass Object?
Нужно отсортировать по "created".
Подскажите пожалуйста вариант реализации.
Спустя 17 минут, 13 секунд (2.04.2011 - 18:14) alex12060 написал(а):
Oo
Class? Object?
Ты класс штоле разносишь?
Class? Object?
Ты класс штоле разносишь?
Спустя 3 минуты, 29 секунд (2.04.2011 - 18:17) oleg17 написал(а):
не понял вопроса.
p.s.
Изначальный код поменять нельзя. Сейчас дорабатываю joomlу под свои нужды.
p.s.
Изначальный код поменять нельзя. Сейчас дорабатываю joomlу под свои нужды.
Спустя 1 час, 42 минуты, 6 секунд (2.04.2011 - 19:59) Snus написал(а):
oleg17
usort();
usort();
Спустя 4 минуты, 16 секунд (2.04.2011 - 20:04) oleg17 написал(а):
Цитата (Snus @ 2.04.2011 - 16:59) |
oleg17 usort(); |
Вы внимательно читали первый мой пост?.
По примеру у меня не получилось сделать.
Потому и спрашиваю.
Вот что у меня было:
function cmp($p, $q) { return $p[created] == $q[created] ? 0
: ($p[created] < $q[created] ? 1 : -1); }
usort($rows3, cmp);
Сортирует по совсем непонятному критерию, причём если полностью закомментировать содержимое фунцуии cmp, результат остаётся тот-же.
Спустя 1 час, 55 минут, 6 секунд (2.04.2011 - 21:59) KonstantinK написал(а):
Мне кажется что вот это
($p[created] < $q[created] ? 1 : -1);сравнение не совсем корректно. Может стоит сравнивать метки времени?
Спустя 7 минут, 36 секунд (2.04.2011 - 22:06) oleg17 написал(а):
Цитата (KonstantinK @ 2.04.2011 - 18:59) |
Мне кажется что вот это ($p[created] < $q[created] ? 1 : -1);сравнение не совсем корректно. Может стоит сравнивать метки времени? |
Может и стоит сравнить отметки времени, только я не знаю как.
Спустя 4 минуты, 7 секунд (2.04.2011 - 22:10) Trianon написал(а):
KonstantinK
Сравнение вполне корректно.
ISO-формат представления даты-времени (подмножеством коего является YYYY-MM-DD HH:MM:SS) вполне допускает сравнение дат, как строк, на больше/меньше/равно более того, он и разрабатывался с учетом этой возможности.
Сравнение вполне корректно.
ISO-формат представления даты-времени (подмножеством коего является YYYY-MM-DD HH:MM:SS) вполне допускает сравнение дат, как строк, на больше/меньше/равно более того, он и разрабатывался с учетом этой возможности.
Спустя 4 минуты, 9 секунд (2.04.2011 - 22:15) Trianon написал(а):
oleg17
так может там нужно $p->created писать?
Перед тем, как что-то сравнивать, нужно убедиться, что Вы в состоянии корректно извлечь данные из контейнера.
так может там нужно $p->created писать?
Перед тем, как что-то сравнивать, нужно убедиться, что Вы в состоянии корректно извлечь данные из контейнера.
Спустя 13 минут, 19 секунд (2.04.2011 - 22:28) KonstantinK написал(а):
Trianon Не знал про сравнение , спасибо буду знать.
Спустя 3 минуты, 40 секунд (2.04.2011 - 22:31) oleg17 написал(а):
да проверил, не могу достать.
Вот так один Object можно перевести в array.
Как мне перевести весе stdClass Object в $array;
Вот так один Object можно перевести в array.
$arrayTwo = (array)$array[0];
Как мне перевести весе stdClass Object в $array;
Спустя 4 минуты, 21 секунда (2.04.2011 - 22:36) Trianon написал(а):
ну так переведите отдельно $p и отдельно $q.
Спустя 6 минут, 44 секунды (2.04.2011 - 22:43) oleg17 написал(а):
Цитата (Trianon @ 2.04.2011 - 19:36) |
ну так переведите отдельно $p и отдельно $q. |
Как я понял $p и $q это параметр по которому сравниваем.
У меня 200 строчек, а не 2. как мне их перевести?
p.s. Уже хочу сказать вам большое спасибо, так как хоть проблему с места сдвинул.
Спустя 3 минуты, 11 секунд (2.04.2011 - 22:46) Trianon написал(а):
$p и $q это не параметр.
Это и есть сравниваемые элементы большого массива.
В Вашем случае - оба одинакового типа stdClass Object
Это и есть сравниваемые элементы большого массива.
В Вашем случае - оба одинакового типа stdClass Object
Спустя 44 минуты, 31 секунда (2.04.2011 - 23:30) oleg17 написал(а):
И как мне все 200 stdClass Object , которые находятся в одном массиве, перевести в нужный мне формат.
Спустя 13 минут, 18 секунд (2.04.2011 - 23:44) Trianon написал(а):
какие двести?
function cmp($pc, $qc)
{
$p = (array) $pc; $q = (array) $qc;
return $p['created'] == $q['created'] ? 0
: ($p['created'] < $q['created'] ? 1 : -1);
}
Спустя 10 часов, 28 минут, 14 секунд (3.04.2011 - 10:12) oleg17 написал(а):
Как говорят утро вечером мудренее. Проснулся и пришёл ответ.
нужно было в функции сравнения добавить строчки
И Проблема решена.
Всем Большое спасибо
Смешно сначала опубликовал потом посмотрел, что уже это написали.
нужно было в функции сравнения добавить строчки
$p=(array)$p;
$q=(array)$q;
И Проблема решена.
Всем Большое спасибо
Смешно сначала опубликовал потом посмотрел, что уже это написали.
Спустя 15 минут, 54 секунды (3.04.2011 - 10:28) Trianon написал(а):
oleg17
теперь перечитайте наш диалог начиная с 22:31 MSK - станет еще смешнее.
теперь перечитайте наш диалог начиная с 22:31 MSK - станет еще смешнее.