我有一个数组,结果如下: a = laranja b =banana c = maçã d = limao
现在我想重新排序它,但没有什么合乎逻辑的东西,比如 d,c,b,a。我只想按照我想要的方式重新排序。可以是 a,d,c,b 或 , c,a,b,d。
我尝试了排序,多重排序,但没有成功。
有什么建议吗?
我在这里粘贴一些代码,看看它是否有帮助
见排序()
$yourArray;
sort($yourArray);
print_r($yourArray);
// Now alphabetical
此外,如果您编写一个函数来根据需要对值进行排序,请使用usort()
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
0: 1
1: 2
2: 3
3: 5
4: 6
编辑:
您的 foreach 语句是 kaput。
<?php
function cmp($a, $b)
{
if ($a == $b)
{
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array("d"=>"limao", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
print_R($a);
usort($a, "cmp");
print_R($a);
?>
输出:
Array
(
[d] => limao
[a] => laranja
[b] => banana
[c] => maçã
)
Array
(
[0] => banana
[1] => laranja
[2] => limao
[3] => maçã
)
您可能需要在数组中添加另一个条目,称为类似sort_order
具有数字权重的条目,并按此排序。
像:
Array (
Array ( 'name' => 'test', 'sort' => 1 ),
Array ( 'name' => 'test test', 'sort' => 2 )
);