16

我正在寻找一种可靠的标准方法来对数组进行排序,将排序后的(关联)数组作为返回值返回

我读过的所有关于返回 BOOLEAN 值或 0-1 的 PHP.net 函数。我需要的方法是这样的:

$some_mixed_array = array( 998, 6, 430 );
function custom_sort( $array )
{ 
  // Sort it
  // return sorted array
}

custom_sort( $some_mixed_array );

// returning: array( 6, 430, 998 )

无需处理字符串,只需 INT-s。

4

3 回答 3

7

这是一个单行:

call_user_func(function(array $a){asort($a);return $a;}, $some_mixed_array);

于 2018-05-03T15:39:07.540 回答
4

你能做到吗?

$some_mixed_array = array( 998, 6, 430 );
function custom_sort( $array )
{
  // Sort it
  asort($array);

  // return sorted array
  return $array;
}

custom_sort( $some_mixed_array );

// returning: array( 6, 430, 998 )

这也可以解决您的问题:

$some_mixed_array = array( 998, 6, 430 );
echo '<pre>'.print_r($some_mixed_array, true).'</pre>';

asort($some_mixed_array); // <- BAM!

// returning: array( 6, 430, 998 )
echo '<pre>'.print_r($some_mixed_array, true).'</pre>';
于 2013-09-10T13:52:42.560 回答
3

正如其他人所说,最好的选择是创建一个自定义函数。但是,为了保持 PHP 未来的灵活性,我会使用可变参数函数。本质上,您将函数设置为接受传递给它的任何参数,并将它们传递给实际sort()函数。通过这种方式,您可以为您放置包装器的标准函数使用存在的任何可选参数——即使这些参数在未来发生变化。

function mysort( ...$params ) {
    sort( ...$params );
    return $params[0];
}
于 2019-10-03T19:17:41.297 回答