对返回新数组的php数组进行排序

时间:2013-09-10 13:45:21

标签: php arrays sorting associative-array

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

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

$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。

3 个答案:

答案 0 :(得分: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>';

答案 1 :(得分:3)

这是一个单行:

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

答案 2 :(得分:1)

正如其他人所说,最好的选择是创建一个自定义函数。但是,为了在PHP的未来中保持灵活性,我将使用variadic function。本质上,您将函数设置为接受传递给它的任何参数,然后将它们传递给实际的sort()函数。这样,您就可以为包装器使用的标准函数使用任何可选参数,即使这些参数将来会更改。

function mysort( ...$params ) {
    sort( ...$params );
    return $params[0];
}