
| 标签:二维数组排序 | 分类:PHP |
今天碰见从两个的数据表(字段名相同)中查询的数据要合并成一个数组,合并成一个数组之后要安时间字段排序,如果只有一个字段排序可能直接用PHP函数asort(顺序)或arsort(倒序),但现在有多个字段怎么实现呢?
比如有两上二组数组$arraya和$arrayb,先把这两个用array_merge_recursive函数合并成一个数组array_merge_recursive($arraya,$arrayb),再通过foreach循环取出要排列的字段付值给另个新数组且保持索引与键名之间的关系,再通过asort或arsort对这个新数组进行排序,接着通过foreach循环取出索引,把合并的数组通过索引的顺序付值给另个新数组,这个数组就是我们想得到的。代码如下:
$comarray = array_merge_recursive($arraya, $arrayb);
$indexarray = array();
foreach ($comarray as $key=>$value)
{
$indexarray [$key] = $value['pubtime'];//pubtime为想按些排列的字段
}
arsort($indexarray);
$endarray= array();
foreach ($indexarray as $k=>$v)
{
$endarray[] = $comarray[$k];
}
//$endarray为所想得到的结果