0

我有一个数组,结果如下: a = laranja b =banana c = maçã d = limao

现在我想重新排序它,但没有什么合乎逻辑的东西,比如 d,c,b,a。我只想按照我想要的方式重新排序。可以是 a,d,c,b 或 , c,a,b,d。

我尝试了排序,多重排序,但没有成功。

有什么建议吗?

我在这里粘贴一些代码,看看它是否有帮助

4

2 回答 2

2

排序()

$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çã
)
于 2012-07-19T11:26:48.500 回答
0

您可能需要在数组中添加另一个条目,称为类似sort_order 具有数字权重的条目,并按此排序。

像:

Array (
  Array ( 'name' => 'test', 'sort' => 1 ),
  Array ( 'name' => 'test test', 'sort' => 2 )
);
于 2012-07-19T11:39:52.780 回答