array("name" => "",
"uid" => "",
"nid" => "",
"vid" => "");
,我需要它排序是这样的:排序这个数组根据自定义条件
array("nid" => "",
"uid" => "",
"vid" => "",
"name" => "");
但我似乎无法弄清楚array_map,uksort()......或任何其他。感谢
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"]);
因为有时候第一个数组并没有所有的键,我需要把键存在(即使这个值为空),这最终会工作得最好,谢谢。 – 2012-03-13 23:15:08
你可以使用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');
您是否检查了function reference for uksort?
既然你要以升序通过其按键的字母顺序排序的数组,但有“姓名”键最后,即使你以后添加附加键这应该工作:
<?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'));
什么_is_的标准是什么? – 2012-03-13 22:57:12