【发布时间】:2012-02-08 23:17:44
【问题描述】:
我有一个问题。我正在通过从 mysql 获取数据并将三个查询结果合并到一个数组中来构建一个数组。
我像这样将数据放入数组中:
while ($a = mysql_fetch_object($activities)) {
$a->type = 1;
$array1[] = $a;
}
while ($k = mysql_fetch_object($fuups)) {
$k->type = 2;
$array1[] = $k;
}
while ($x = mysql_fetch_object($refuups)) {
$x->type = 3;
$array1[] = $x;
}
return (object)$array1;
这会返回如下内容:
stdClass Object
(
[0] => stdClass Object
(
[added] => 2012-01-17 07:33:53
[type] => 1
)
[1] => stdClass Object
(
[added] => 2012-01-13 06:36:22
[type] => 1
)
[2] => stdClass Object
(
[added_type_2] => 2012-01-09 04:01:12
[type] => 2
)
[3] => stdClass Object
(
[added_type_2] => 2012-02-08 02:08:32
[type] => 2
)
[4] => stdClass Object
(
[added_type_2] => 2012-01-25 00:09:08
[type] => 2
)
[5] => stdClass Object
(
[added_type_3] => 2012-01-23 00:09:08
[type] => 3
)
[6] => stdClass Object
(
[added_type_3] => 2012-01-22 00:09:08
[type] => 3
)
)
我尝试了诸如 asort、ksort、sort 之类的方法,但没有运气。还可以通过“按添加的 desc 排序”获取日期,谢谢
【问题讨论】:
-
想想你能不能调用这三个查询并创建联合并得到一个结果.. 易于在 sql 中排序..?
-
我也试过了,但我不知道 php 如何知道查询得到的内容类型是什么
-
对这种排序不太确定,但是您可以使用查询对其进行排序并以所需的顺序从数据库中获取它吗?
-
您是否尝试过选择“TO_UNIXTIME([date field]) AS
timestamp”并将数组存储为“$array[$a->timestamp]”?然后你就有了一个易于排序的数字键控数组,并且需要更少的 PHP 来处理。