PHP轮流排序

时间:2016-10-16 16:38:32

标签: php sorting

我想按照下面列出的顺序对以下数据项进行排序:

$char = array('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C');

我希望输出是:

$char = array('A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C');

使用PHP排序的任何技巧

非常感谢!

2 个答案:

答案 0 :(得分:0)

bool

此函数对数组进行排序。此功能完成后,元素将从最低到最高排列。

试试这个:

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

信用:here

答案 1 :(得分:0)

为了按值的升序排序数组,您可以使用asort(),以便按值的升序对数组进行排序。

asort - 对数组进行排序并维护索引关联。

此函数对数组进行排序,以使数组索引与它们关联的数组元素保持相关性。这主要用于排序实际元素顺序很重要的关联数组。

示例代码:

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

<强>输出:

c = apple
b = banana
d = lemon
a = orange

示例参考:asort

您的问题的解决方案

您的代码需要像这样。

<?php
$char = array('A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C');
asort($char);//Sorts the array here
foreach ($char as $key => $val) {
    $values[] = $val;
}
print_r($values);//Print the sorted output
?>

<强>输出:

Array ( [0] => A [1] => A [2] => A [3] => A [4] => A [5] => B [6] => B [7] => B [8] => B [9] => B [10] => C [11] => C [12] => C [13] => C [14] => C )