array("name" => "",
"uid" => "",
"nid" => "",
"vid" => "");
我需要这样排序:
array("nid" => "",
"uid" => "",
"vid" => "",
"name" => "");
但我似乎无法弄清楚array_map,uksort()......或其他任何东西。感谢
答案 0 :(得分:2)
不是那样的,但如果你只看4个键那么为什么不呢:
$newArray = array("nid" => $array["nid"], "uid" => $array["uid"], "vid" => $array["vid"], "name" => $array["name"]);
答案 1 :(得分:1)
您是否检查了function reference的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'));
答案 2 :(得分:0)
您可以使用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');