在php中复制多维数组[复制]

Possible Duplicate:
PHP - Multiple uasort functions breaks sorting

I have multidimensional array in php with 3 columns.I needs to sort it by "awarded_units" and if two users have same awarded_units(tiebreaker), then one with least selected unit will come first.

user_id awarded_units selected_units

15       5               2
22       5               1
3        4               2
4        4               5
5        4               1

As you see, I had already sorted array on the basis of awarded_units using some multidimensional sort function. Now, I needs to resolve the tiebreaker condition . Since user_id=15 and user_id=22 have same awarded_units so user_id 22 must come first.

Correct order will be

user_id awarded_units selected_units

22       5               1
15       5               2
5        4               1
3        4               2
4        4               5

Kindly tell me how to do this.Thanks

You can use array_multisort:

$cols = array();
foreach ($multiArray as $key => $value) 
{
    $cols['awarded_units'][$key]  = $value['awarded_units'];
    $cols['selected_units'][$key] = $value['selected_units'];
}
array_multisort($cols['awarded_units'], SORT_DESC, $cols['selected_units'], SORT_ASC, $multiArray);

Use a custom sort function with usort:

usort($data, function($a, $b) {
    if ($a['awarded_units'] == $b['awarded_units'])
    {
        return $b['selected_units'] - $a['selected_units'];
    }

    return $b['awarded_units'] - $a['awarded_units'];
});

You can also use array_multisort for this, but I prefer using usort - more flexibility and better readability.