如何在php中对数组进行排序

时间:2009-11-12 08:58:02

标签: php sorting

我希望相同的值具有相同的索引 例如

1 2 2 3 5
排序后

array(
0=>1
1=>2
1=>2
3=>3
4=>5);

但是我们不能在php数组中设置重复索引。

4 个答案:

答案 0 :(得分:6)

php中有sort函数! (我回答主题而不是正文,并没有完全跟随你,但这里是你在php中排序的方式)

示例

<?php

$fruits = array("lemon", "orange", "banana", "apple");

sort($fruits);

foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

<强>重复

在上面的例子中,duplicates只有自己的索引,所以数组:

5 4 5 1 3 1 2

看起来像这样

1 1 2 3 4 5 5

这可能不是你想要的,你想要的是另一种类型的数据集,而不仅仅是一个简单的数组,也许你想要一个哈希表或只是每行的链表。

如果您对它没问题,可以使用array_unique删除重复项 $newArray=array_unique($arr);

这将导致阵列看起来像这样

1 2 3 4 5

答案 1 :(得分:2)

尝试使用它。

sort($array);

答案 2 :(得分:2)

你是对的,你不能在数组中的同一个索引处有重复的值 - 数组中的每个索引只有一个值。

关于问题的标题,要在PHP中对数组进行排序,请使用sort

如果这不符合您要求的内容,您可能需要编辑您的问题以使其更清晰一些(问题正文似乎与问题标题无关)。

发布OP的编辑

无法在同一个键上存储多个值,您的输出数组(array(0=>1, 1=>2, 1=>2, 3=>3, 4=>5);)实际上没有意义(键1映射到值{ {1}})在排序数组中。您是否尝试存储数字的出现次数?

e.g。给出输入:

2

获取输出:

1, 2, 2, 3, 5

答案 3 :(得分:0)

您正在寻找array_unique

  

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

     

获取一个输入数组并返回一个没有重复值的新数组。