如何在PHP中使用一个例外对数组进行排序

时间:2012-11-06 20:44:13

标签: php arrays sorting asort

假设我有一个名为$ array的数组,就像我在它上面运行一样:

Array
(
    [1] => Apples
    [2] => Bananas
    [3] => Cherries
    [4] => Donuts
    [5] => Eclairs
    [6] => Fried_Chicken
)

最简单的方法是,按字母顺序排序后,删除具有“甜甜圈”值的键,然后放在最后?

2 个答案:

答案 0 :(得分:6)

我只需删除甜甜圈元素,执行asort,然后重新添加甜甜圈项目。

答案 1 :(得分:1)

我想出了这个。测试并确认它有效。重新排序你的数组,以便我真正看到排序。

$arr = Array(
  1 => "Fried_Chicken",
  2 => "Donuts",
  3 => "Bananas",
  4 => "Apples",
  5 => "Eclairs",
  6 => "Cherries"
);  

// Get donut and key
$donut_key = array_search("Donuts", $arr);
$donut = $arr[$donut_key];  // If you don't need to keep the value, skip this line

// Remove donut
unset($arr[$donut_key]);

// Sort
asort($arr);

// Append Donut
$arr += array($donut_key => $donut);

阵列搜索 http://php.net/manual/en/function.array-search.php

密钥保留附加 http://www.vancelucas.com/blog/php-array_merge-preserving-numeric-keys/