Skrypt sortuje tablicę wielowymiarową, według podanego przez nas klucza.
Przypuśćmy, że mamy tablicę, która posiada elementy będące również tablicami ale asocjacyjne. Dzięki temu skrypcie, będziecie mogli posortować tablice asocjacyjne według klucza.
Przykład:
$grupaLudzi1 = array (klucz_id=>"MWZ", imie1=>"Marian", imie2=>"Włodek", imie3=>"Zbyszek");
$grupaLudzi2 = array(klucz_id=>"ALP", imie1=>"Anonim", imie2=>"Lolkowki", imie3=>"Paździch");
$tablicaGlowna = array($grupaLudzi1, $grupaLudzi2);
Rozwiązanie:
sortujTabliceWielowymiarowa($tablicaGlowna, array('klucz_id'=>SORT_ASC));
zwróci:
Array
(
[1] => Array
(
[klucz_id] => ALP
[imie1] => Anonim
[imie2] => Lolkowki
[imie3] => Pazdzich
)
[0] => Array
(
[klucz_id] => MWZ
[imie1] => Marian
[imie2] => Wlodek
[imie3] => Zbyszek
)
)
Listing
$colarr = array();
foreach ($cols as $col => $order) {
$colarr[$col] = array();
foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
}
$eval = 'array_multisort(';
foreach ($cols as $col => $order) {
$eval .= '$colarr[\''.$col.'\'],'.$order.',';
}
$eval = substr($eval,0,-1).');';
eval($eval);
$ret = array();
foreach ($colarr as $col => $arr) {
foreach ($arr as $k => $v) {
$k = substr($k,1);
if (!isset($ret[$k])) $ret[$k] = $array[$k];
$ret[$k][$col] = $array[$k][$col];
}
}
return $ret;
}
Ranga: Administrator serwisu Punktów: 0