将参数传递给sort函数

jam*_*mer 1 php sorting

我正在使用这样的uasort函数:

uasort($entity_list, 'sortArray');

function sortArray($a, $b) {
  if($a['fixed_column_name'] == $b['fixed_column_name']) {
      return 0;
  }

  return ($a['fixed_column_name'] < $b['fixed_column_name']) ? -1 : 1;
}
Run Code Online (Sandbox Code Playgroud)

我想将一个参数传递给sortArray函数,如下所示:

uasort($entity_list, 'sortArray($arg)');

function sortArray($a, $b, $arg) {

  $larg = $arg;

  if($a[$larg] == $b[$larg]) {
      return 0;
  }

  return ($a[$larg] < $b[$larg]) ? -1 : 1;
}
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 5

如果您使用的是PHP 5.3+(此时您真的应该这样做),您可以使用闭包:

uasort($entity_list, function ($a, $b) use ($arg) {
    if ($a[$arg] == $b[$arg]) {
        return 0;
    }
    return ($a[$arg] < $b[$arg]) ? -1 : 1;
});
Run Code Online (Sandbox Code Playgroud)

否则,你将不得不使用global变量(哦,不!)或类来解决相同的问题.