Сортировка ассоциативного массива PHP - PullRequest
0 голосов
/ 07 января 2012

Я бы хотел, чтобы мой ассоциативный массив сортировал свои элементы. В настоящее время мой массив выглядит так:

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 Ответ

2 голосов
/ 07 января 2012

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

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

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

...