2012-01-07 182 views
-2

我想我的关联数组有它的元素排序。目前,我的数组是这样的:排序一个PHP关联数组

Array 
(
    [1585] => Chicago, Ohio,Dallas, Denver, Detroit, Houston, Las Vegas, So. Calf. 
    [1586] => Chicago, Ohio, Dallas, Denver, Houston, Las Vegas, So. Calf. 
    [1588] => The Bay Area, Chicago, Dallas, Detroit, Houston, Las Vegas, Minneapolis 
    [1589] => Charlotte, Chicago, Ohio, D.C. 
    [1590] => Orange County, Orlando, Philadelphia, Phoenix, Richmond, San Diego, The Bay Area, Seattle 
    ) 

而我想这个数组以升序排列,这样的:

Array 
(
    [1585] => Chicago, Dallas, Denver, Detroit,Houston, Las Vegas, Ohio, So. Calf. 
    [1586] => Chicago, Dallas, Denver, Houston, Las Vegas,, Ohio, So. Calf. 
    [1588] => Chicago, Dallas, Detroit, Houston, Las Vegas, Minneapolis, The Bay Area 
    [1589] => Charlotte, Chicago, D.C., Ohio 
    [1590] => Orange County, Orlando,Philadelphia, Phoenix, Richmond,San Diego, Seattle, The Bay Area 
    ) 

感谢....

+1

你的代码是什么,它产生的错误信息是什么? – 2012-01-07 04:18:56

+0

你尝试过什么吗?尝试通过逗号分割每个元素,该元素返回数组然后进行排序,然后合并结果。那是你的答案。 – DarthVader 2012-01-07 04:21:17

回答

2

您对每一个需要循环,上的元素explode以获得您实际可以排序的列表。那么你可以使用列表中的排序功能和implode返回,分离。例如:

foreach($arr as $id => $list){ 
    $listArr = explode(',', $list); 
    sort($listArr); 
    $arr[$id] = implode(', ', $listArr); 
} 

这只是一个简单的例子。根据字符串中项目分隔的格式和一致性,您可能需要添加一些修剪或使用preg_split而不是explode,但这应该会给您基本的想法。

+0

谢谢......它的工作.. – vims 2012-01-07 08:15:56