创建一个数组和arraypush

时间:2016-01-22 20:04:08

标签: php arrays sorting multidimensional-array

我有一个MySQL数据库,我可以在其中检索id和web地址。所有的webadresses都有一个类似的结构:www.aaa.com/main/sub/name

我有一个while循环,会将网址分成mainsubname,我想为每个ID添加“id”,“main”,“sub”并将“命名”为一个数组,然后先对其进行排序,首先在main,然后sub,然后name,以便我有:

Id Main   Sub          Name
1  Ford   Transit      blue
2  Ford   Transit      red
3  Subaru Impreza      green
4  Subaru whatever     blue

到目前为止,这是我的代码:

$total_array = array();
$i=0;
while ($i < $num) {
    $id = mysql_result($result,$i,"id");
    $adress = mysql_result($result,$i,"address");
    $temp = explode("/", $adress);
    $car = temp[3];
    $make= temp[4];
    $color = temp[5];
    array_push($total_array,"$id","$car","$make","$color");
    $i++;
}

/* SOME ARRAY SORTING */

print_r($total_array);

但我无法弄清楚如何对它们进行排序,我试图为每一列找到一个名称,但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

SELECT 
    l.PersonName, 
    cl.CityName, 
        COALESCE((SELECT COUNT(1)
        FROM #CityList cl2
            LEFT JOIN #A_LogFile l2
                ON cl2.CityName = l2.CityName
        WHERE cl2.cityName = cl.CityName
            AND l2.PersonName = l.PersonName
        GROUP BY l2.PersonName, cl2.CityName
        ), 0)
    AS 'Total Visits' 
FROM #A_LogFile l 
    CROSS APPLY #CityList cl
GROUP BY l.PersonName, cl.CityName
ORDER BY PersonName, CityName

这就是你想要的吗?