我有一个数组,结果如下:a = laranja b = banana c =maçãd= limao
现在我想重新排序,但是没有合乎逻辑的东西,比如,d,c,b,a。 我想按照我想要的方式重新排序。可以是a,d,c,b或c,a,b,d。
我尝试了排序,多重排序,但没有成功。
有一些建议吗?
我粘贴了一些代码 here ,看看它是否有帮助
答案 0 :(得分:2)
请参阅sort()
$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çã
)
答案 1 :(得分:0)
您可能需要在数组中添加另一个名为sort_order
的条目
它具有数字权重,并按此排序。
像:
Array (
Array ( 'name' => 'test', 'sort' => 1 ),
Array ( 'name' => 'test test', 'sort' => 2 )
);