对数组进行排序 - 始终在顶部有一个项目?

时间:2012-11-19 23:34:37

标签: php arrays

我有一个类似这样的数组:

$sub = array(
   'add' => 'Add New',
   'default' => 'Home Page',
   'remove' => 'Remove Old'
);

这是在其他地方建造的,但它按字母顺序排列。无论如何都可以轻松排序,因此默认值始终位于顶部?

6 个答案:

答案 0 :(得分:3)

我不认为你是在排序后

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

答案 1 :(得分:3)

试试这个

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

答案 2 :(得分:2)

删除它然后再添加

$v = $sub['default'];
unset($sub['default']);
$sub['default'] = $v;

答案 3 :(得分:2)

$default = $sub['default'];
unset($sub['default']);
$sub = array_reverse($sub);
$sub['default'] = $default;
$sub = array_reverse($sub);

答案 4 :(得分:1)

uksort应该是你的目标

答案 5 :(得分:1)

你不需要排序 - 它已经排序了。只需移动您想要的元素。

$tmp = array('default' => $sub['default']) ;
unset( $sub['default']) ;
array_unshift($sub, $tmp);