根据自定义条件对此数组进行排序

array("name" => "",
      "uid" => "",
      "nid" => "",
      "vid" => "");

And I need it sorted like this:

array("nid" => "",
      "uid" => "",
      "vid" => "",
      "name" => "");

But I can't seem to figure out array_map, uksort()... or any others. THanks

Not a sort as such, but if you are only looking at 4 keys then why not:

$newArray = array("nid" => $array["nid"], "uid" => $array["uid"], "vid" => $array["vid"], "name" => $array["name"]);

You could use uksort().

function myksort($a, $b) {
    $korder = array('nid', 'uid', 'vid', 'name');
     return (array_search($a, $korder) < array_search($b, $korder)) : -1 ? 1;
}

uksort($array, 'myksort');

Have you checked the function reference for uksort?

Given that you want to sort an array alphabetically in ascending order by its keys but have the 'name' key last, this should work even if you add additional keys later:

<?php

class MySortHelper
{
    function sort_my_array($a, $b)
    {
        if ( $a == $b ) return 0;

        if ( $a == 'name' ) return 1;
        if ( $b == 'name' ) return -1;

        return ($a > $b) ? 1 : -1;
    }
}

// ...

$my_sort_helper = new MySortHelper();
uksort($my_array, array($my_sort_helper, 'sort_my_array'));