0

次のような結果になる配列があります: a = laranja b = バナナ c = maçã d = limao

今、並べ替えたいのですが、d、c、b、a のような論理的なものはありません。好きなように並べ替えたいだけです。a、d、c、b または、c、a、b、d のいずれかです。

ソート、マルチソートを試しましたが、成功しませんでした。

何かアドバイスはありますか?

ここにコードを貼り付けて、役立つかどうかを確認します

4

2 に答える 2

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çã
)
于 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 に答える