function array_sort_key(array &$array, $key) {
global $_key; // Declare local compare function.
if(!function_exists(_array_sort_key_cmp)) {
function _array_sort_key_cmp($a, $b) {
global $_key;
return strcmp($a[$_key], $b[$_key]);
}
} // Sort array. Set key used my compare function. Finally unset useless global variable.
$_key = $key;
$result = usort($array, "_array_sort_key_cmp");
unset($_key); return $result;
}
function get_conf_physical_disks_list() {
global $config; $a_physicaldisk = array(); if (is_array($config['disks']['disk'])) {
array_sort_key($config['disks']['disk'], "name");
$a_disks = $config['disks']['disk'];
foreach ($a_disks as &$disk) { $disk['class'] = "physical"; } // Set disk type
//$a_physicaldisk = array_merge($a_physicaldisk, $a_disks);
  } return array_merge($a_physicaldisk, $a_disks);
}如题 关于array_sort_key()这个函数我不太明白
array_sort_key($config['disks']['disk'], "name"); 返回的是什么值?
有高手能细细解答吗?谢谢了!

解决方案 »

  1.   

    _array_sort_key_cmp 这个function贴出来看看
      

  2.   

    用来对多维数组按某key排序
    $config['disks']['disk'][0]['name'] = "a";
    $config['disks']['disk'][1]['name'] = "c";
    $config['disks']['disk'][2]['name'] = "b";
    get_conf_physical_disks_list();
    获得的结果如下:---------- php 执行 ----------
    array (
      0 => 
      array (
        'name' => 'a',
        'class' => 'physical',
      ),
      1 => 
      array (
        'name' => 'b',
        'class' => 'physical',
      ),
      2 => 
      array (
        'name' => 'c',
        'class' => 'physical',
      ),
    )
    输出完成 (耗时: 0 秒) - 正常终止
      

  3.   

    那最上面的 “array &$array”是什么意思呀
      

  4.   

    定义一个数组变量 按地址传递参数$array
      

  5.   

    PHP中的函数,除了以对象为参数外,都是传值的。所以要&来表示引用
      

  6.   

    get_conf_physical_disks_list:提取物理磁盘设定信息一览
    array_sort_key:根据指定的数组key,进行排序
      

  7.   


    在调用的时候不要传&,否则php会出警告信息