array("name" => "", "uid" => "", "nid" => "", "vid" => "");
И мне нужно, чтобы это было отсортировано так:
array("nid" => "", "uid" => "", "vid" => "", "name" => "");
Но я не могу понять, array_map, uksort () ... или любые другие. БЛАГОДАРЯ
Не сортировка как таковая, но если вы смотрите только на 4 клавиши, то почему бы и нет:
$newArray = array("nid" => $array["nid"], "uid" => $array["uid"], "vid" => $array["vid"], "name" => $array["name"]);
Вы проверяли ссылку на функцию для uksort?
Учитывая, что вы хотите отсортировать массив по алфавиту в порядке возрастания по его ключам, но ключ 'name' должен быть последним, это должноработать, даже если вы добавите дополнительные ключи позже:
<?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'));
Вы можете использовать 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');