2012-01-07 3 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

Какой у вас код и какое сообщение об ошибке он производит? –

+0

сделал ли вы что-нибудь? попробуйте разделить каждый элемент на запятую, которая возвращает массив, а затем сортирует, а затем объединяет результат. это ваш ответ. – DarthVader

ответ

2

Вы должны перебрать каждый элемент explode на ,, чтобы получить список, который вы действительно можете отсортировать. то вы можете использовать функцию сортировки в списке и implode назад до , разделение. Например:

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

Это простой пример. В зависимости от формата и согласованности разделения элементов в строке вам может потребоваться добавить некоторую обрезку или использовать preg_split вместо explode, но это должно дать вам основную идею.

+0

Спасибо ... его работа .. – vims

Смежные вопросы