我有一个这样的数组:
$sub = array(
'add' => 'Add New',
'default' => 'Home Page',
'remove' => 'Remove Old'
);
这是在其他地方建造的,但它是按字母顺序进行的。无论如何可以轻松地对此进行排序,因此默认值始终位于首位?
我不认为你是在排序之后
$sub = array(
'add' => 'Add New',
'default' => 'Home Page',
'remove' => 'Remove Old'
);
$default = array('default' => $sub['default']);
unset($sub['default']);
$sub = $default + $sub;
print_r($sub);
试试这个
$sub = array(
'add' => 'Add New',
'default' => 'Home Page',
'remove' => 'Remove Old'
);
function defaultSort($a, $b){
if ($a == $b) {
return 0;
}
return ($a == 'default') ? -1 : 1;
}
uksort($sub, 'defaultSort');
var_dump($sub);
删除它然后重新添加
$v = $sub['default'];
unset($sub['default']);
$sub['default'] = $v;
$default = $sub['default'];
unset($sub['default']);
$sub = array_reverse($sub);
$sub['default'] = $default;
$sub = array_reverse($sub);
uksort应该是你所追求的
你不需要排序 - 它已经排序。只需移动您想要的元素。
$tmp = array('default' => $sub['default']) ;
unset( $sub['default']) ;
array_unshift($sub, $tmp);