PHP ключи массива мультисортировки - PullRequest
0 голосов
/ 08 июля 2020

Я создал функцию для сортировки массивов по более чем одному ключу.

//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 для сортировки более чем одного ключа в массиве?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...