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: 38473

