Ben birden fazla sütun üzerinde çok boyutlu diziler bir dizi sıralamak mümkün arıyorum. Daha da karmaşıklaştıran I tuşu / sütun başına belirli bir sıralama seçeneklerini ayarlamak mümkün olmak istiyorum. Ben bir DB sorgu sonucu benzer ne var, ama aslında, biri bu nedenle PHP sıralamak gereğini yerine SQL gelmiyor.
Array
(
[0] => Array
(
[first_name] => Homer
[last_name] => Simpson
[city] => Springfield
[state] => Unknown
[zip] => 66735
)
[1] => Array
(
[first_name] => Patty
[last_name] => Bouvier
[city] => Scottsdale
[state] => Arizona
[zip] => 85250
)
[2] => Array
(
[first_name] => Moe
[last_name] => Szyslak
[city] => Scottsdale
[state] => Arizona
[zip] => 85255
)
[3] => Array
(
[first_name] => Nick
[last_name] => Riviera
[city] => Scottsdale
[state] => Arizona
[zip] => 85255
)
)
Ben bir DB sorgu ile yapılabilir ne benzer sıralamak mümkün olmak istiyorum. Oh, ve bazen bir sütun / anahtar sayısına göre belirtilmesi gerekir.
Ne akılda vardı buna benzer bir şey oldu:
$sortOptions = array( array( 'city', SORT_ASC, SORT_STRING ),
array( 'zip', SORT_DESC, SORT_NUMERIC),
array( 2, SORT_ASC, SORT_STRING) // 2='last_name'
);
$sorter = new MultiSort($data, $sortOptions );
$sortedData = $sorter->getSortedArray() ;
print_r( $jmsSorted);
Ne ile bitirmek istiyorum şudur:
Array
(
[0] => Array
(
[first_name] => Nick
[last_name] => Riviera
[city] => Scottsdale
[state] => Arizona
[zip] => 85255
)
[1] => Array
(
[first_name] => Moe
[last_name] => Szyslak
[city] => Scottsdale
[state] => Arizona
[zip] => 85255
)
[2] => Array
(
[first_name] => Patty
[last_name] => Bouvier
[city] => Scottsdale
[state] => Arizona
[zip] => 85250
)
[3] => Array
(
[first_name] => Homer
[last_name] => Simpson
[city] => Springfield
[state] => Unknown
[zip] => 66735
)
)
UPDATE: Ben ideal bir çözüm dinamik oluştururken neden olacağını düşünüyorum
array_multisort( $city, SORT_ASC, SORT_STRING, $zip, SORT_DESC, SORT_NUMERIC, $last_name, SORT_ASC, SORT_STRING, $inputArray);
Sorun ben orada "hard code" bu önemli isimleri zorunda istemiyorum olmasıdır. I Example #3 Sorting database results array_multisort()
documentation that ended up using array_multisort()
adlı dayalı bir çözüm oluşturma çalıştı ama ben {[(3 benim dinamik inşa argüman listesini kullanmak için bir yol bulmak gibi olamaz )]}.
Benim girişimi daha sonra bir diziye birlikte "zincir" bu argümanları oldu ve
call_user_func_array( 'array_multisort', $functionArgs);
Bu bir sonuçlanır
Warning: Parameter 2 to array_multisort() expected to be a reference, value given in...