Я создал функцию для сортировки массивов по более чем одному ключу.
//sorter array
function sorter1($arr,$kolonne){
$h=0;
while($h<count($kolonne)){
if($h==0){$streng='array_column($arr,"'.$kolonne[$h].'"),SORT_'.$kolonne[$h+1];$h=$h+2;} else
if($h>0){$streng=$streng.',array_column($arr,"'.$kolonne[$h].'"),SORT_'.$kolonne[$h+1];$h=$h+2;}
}
echo $streng.'<br>';
array_multisort($streng,$arr);
array_multisort(array_column($arr,"loebnr"),SORT_ASC,array_column($arr,"baadid"),SORT_ASC,$arr);
return $arr;
}
Я вызываю функцию следующим образом:
$krit=array('loebnr','ASC','baadid','ASC');
$test1= sorter1($dblinjer, $krit);
$ streng дает мне результат: array_column ($ arr, "loebnr"), SORT_AS C, array_column ($ arr, "baadid"), SORT_ASC Итак, я ожидаю, что строка сортировки будет:
array_multisort(array_column($arr,"loebnr"),SORT_ASC,array_column($arr,"baadid"),SORT_ASC,$arr);
При вызове функции я получаю ошибка: ожидается, что аргумент № 1 будет массивом или флагом сортировки в ....
Когда я запускаю
array_multisort(array_column($arr,"loebnr"),SORT_ASC,array_column($arr,"baadid"),SORT_ASC,$arr);
напрямую, то у меня нет ошибки. В чем разница?
Как создать функцию с помощью $ krit для сортировки более чем одного ключа в массиве?