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'));