我希望相同的值具有相同的索引 例如
1 2 2 3 5
排序后:
array(
0=>1
1=>2
1=>2
3=>3
4=>5);
但是我们不能在php数组中设置重复索引。
答案 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 ] )
获取一个输入数组并返回一个没有重复值的新数组。