我正在使用$myarray
对natsort($myarray)
进行排序。对数组进行排序,并保持索引号,如下所示。
排序前
Array ( [0] => 2 C [1] => 3 A [2] => 1 B )
排序后
Array ( [2] => 1 B [0] => 2 C [1] => 3 A )
是否可以在不保留索引号的情况下进行排序? 在我排序后,我期待一个这样的数组:
预期结果
Array ( [0] => 1 B [1] => 2 C [2] => 3 A )
答案 0 :(得分:2)
试试这个
<?php
$your_array = array('2 C', '3 A', '1 B');
natsort($your_array);
$your_array = array_values($your_array);
print_r($your_array);
?>
答案 1 :(得分:1)
在获取值后,您可以将数组放入新变量中。$ sorted_new_array = array_values($ your_sorted_array);
答案 2 :(得分:1)
您可以使用array_values()重置密钥。
OR
使用这两个函数并创建相同输出的代码:
<?php
$arr = array ('2 C', '3 A', '1 B');
$sorted = array_values($arr);
echo '<pre>';print_r($sorted);echo '</pre>';
sort($arr);
echo '<pre>';print_r($arr);echo '</pre>';
?>
输出:
Array
(
[0] => 2 C
[1] => 3 A
[2] => 1 B
)
Array
(
[0] => 1 B
[1] => 2 C
[2] => 3 A
)
答案 3 :(得分:1)
只需使用nasort
和array_values
功能。
natsort()
函数使用“自然顺序”对数组进行排序 算法。这些值保留了原始密钥。
因为nasort
保留了密钥,所以需要使用array_values
,它会创建一个具有相对索引的新数组。
<强>过程强>
$arr = array('0' => '2 C', '1' => '3 A', '2' => '1 B');
natsort($arr);
$arr = array_values($arr);
print_r($arr);
<强> Rresult 强>
Array
(
[0] => 1 B
[1] => 2 C
[2] => 3 A
)
答案 4 :(得分:1)
您可以使用自然排序选项使用常规排序执行单线程:
sort($array,SORT_NATURAL);
示例:
$fruits = array("lemon3", "lemon2", "orange2","orange10", "banana4", "apple9");
sort($fruits,SORT_NATURAL);
print_r($fruits);
阵 ( [0] =&gt; apple9 [1] =&gt; banana4 [2] =&gt; lemon2 [3] =&gt; lemon3 [4] =&gt; orange2 [5] =&gt; orange10 )
答案 5 :(得分:0)
<?php
$arr = array ('2C', '3A', '1B');
//predefined function
uasort($arr,'sortArray');
function sortArray($indexOne, $indexTwo)
{
if($indexOne < $indexTwo)
return -1;
if($indexOne > $indexTwo)
return 1;
if($indexOne == $indexTwo)
return 0;
}
$getResult = array_values($arr);
print_r($getResult);
?>